Ol� a todos . Tenho uma pequena d�vida : eu tenho um JTextField dentro de um
JFrame numa classe. Dentro do mesmo arquivo tenho uma classe que extende
Thread.
Quero saber como modificar o valor do JTextField de dentro da classe
BtnThread ; seria interessante
que BtnThread recebesse como argumento o JText e modificasse a vari�vel do
JTextField correspondente.
A� vai o c�digo-fonte, baseado num sample do JBuilder :
Obrigado a todos.
Jorge Fl�vio
/*
* Copyright (c) 1997-1999 Inprise Corporation. All Rights Reserved.
*
*/
package com.borland.samples.welcome;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class WelcomeFrame extends JFrame {
BtnThread jbtn1trd,jbtn2trd;
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JButton jButton1 = new JButton();
TitledBorder titledBorder1;
JButton jButton2 = new JButton();
public JTextField jText1 = new JTextField();
FlowLayout flowLayout1 = new FlowLayout();
public JTextField jText2 = new JTextField();
// Construct the frame
public WelcomeFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
// Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
titledBorder1 = new TitledBorder("");
contentPane.setLayout(flowLayout1);
this.setTitle("Welcome to JBuilder");
this.setJMenuBar(jMenuBar1);
this.setSize(new Dimension(400, 300));
jMenuFile.setText("File");
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileExit_actionPerformed(e);
}
});
jButton1.setMnemonic('0');
jButton1.setText("JText1");
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jButton1_mouseClicked(e);
}
});
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
contentPane.addAncestorListener(new javax.swing.event.AncestorListener()
{
public void ancestorAdded(AncestorEvent e) {
contentPane_ancestorAdded(e);
}
public void ancestorMoved(AncestorEvent e) {
}
public void ancestorRemoved(AncestorEvent e) {
}
});
contentPane.setBorder(titledBorder1);
jButton2.setToolTipText("");
jButton2.setText("JText2");
jText1.setText("In�cio ");
jText2.setToolTipText("");
jText2.setText("In�cio ");
jMenuFile.add(jMenuFileExit);
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuHelpAbout_actionPerformed(e);
}
});
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuHelp);
contentPane.add(jText2, null);
contentPane.add(jText1, null);
contentPane.add(jButton2, null);
contentPane.add(jButton1, null);
jbtn1trd= new BtnThread();
jbtn2trd= new BtnThread();
}
file://Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
file://File | Exit action performed
public void jMenuFileExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
file://Help | About action performed
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
}
void jButton1_actionPerformed(ActionEvent e) {
}
void contentPane_ancestorAdded(AncestorEvent e) {
}
void jButton1_mouseClicked(MouseEvent e) {
jbtn1trd.start();
}
}
/** Classe que extende Thread, utilizada pelos JButtons para
* modificar o valor dos JTextFields contando at� 1000.
*/
class BtnThread extends Thread {
/** Era para esse construtor receber como argumento uma refer�ncia
ao JTextField para eu poder modificar o texto do mesmo, independente
de ser jtext1 ou jtext2
*/
public BtnThread() {
super();
}
public void run() {
for (int i = 0; i < 1000; i++) {
try {
sleep((int)(Math.random() * 1000));
WelcomeFrame.jText1.setText("" + i/10 + " conclu�do ...");
} catch (InterruptedException e) {}
}
jText1.setText("Conlcu�do : " + getName());
}
}
--------------------------- LISTA SOUJAVA ---------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
[d�vidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
---------------------------------------------------------------------