package demo; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test extends WindowAdapter implements ActionListener { JLabel label; JTextField textfield1,textfield2,textfield3; JButton button; public Test(){ JFrame f = new JFrame("Test"); Container contentPane = f.getContentPane(); contentPane.setLayout(new BorderLayout());
label = new JLabel(); textfield1 = new JTextField(); textfield2 = new JTextField(); textfield3 = new JTextField(); button = new JButton("refresh"); button.addActionListener(this);
触发JBUTTON的事件也是可以的
不过从外部类来设置这个setText()虽然值是传过来了但JLABLE显示的内容还是原来的没有刷新成我设置的值
现在的问题就是不知道怎么样去刷新他
removeAll();
setText();
这个我也是试过的不行
setText();
......JFrame.validate()
重新效验一下久可以了;
发段代码上来看一下吧!
每当鼠标点的时候得到新的str,也没用别的语句,JLabel的内容显示就自动改变了啊。
建议你说详细一些你到底想达到什么样的效果。
public JLabel jLabel = null;
public JTextField jTextField = null;
private JTextField jTextField2 = null;
private JTextField jTextField3 = null;
private JButton jButton = null;
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
public JTextField getJTextField(String info) {
if (jTextField == null) {
jTextField = new JTextField();
}
jTextField.setText(info);
//SwingUtilities.updateComponentTreeUI(this);
// jTextField.revalidate();
// jTextField.repaint();
return jTextField;
}
/**
* This method initializes jTextField2
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField2() {
if (jTextField2 == null) {
jTextField2 = new JTextField();
}
return jTextField2;
}
/**
* This method initializes jTextField3
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField3() {
if (jTextField3 == null) {
jTextField3 = new JTextField();
}
return jTextField3;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setIcon(new ImageIcon(getClass().getResource("/com/Desktop2.png")));
jButton.setText("启动");
}
jButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
TestDemo test=new TestDemo();
test.changeInfo();
}
});
return jButton;
}
public static void main(String[] args) {
}
/**
* This is the default constructor
*/
public Test() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/com/Desktop2.png")));
this.setSize(300,200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
//this.re
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getJContentPane() {
if(jContentPane == null) {
jLabel = new JLabel();
jContentPane = new javax.swing.JPanel();
jContentPane.setLayout(new java.awt.BorderLayout());
jLabel.setText("JLabel");
jLabel.setPreferredSize(new java.awt.Dimension(10,10));
jLabel.setIcon(new ImageIcon(getClass().getResource("/com/Desktop2.png")));
jContentPane.add(jLabel, java.awt.BorderLayout.CENTER);
jContentPane.add(getJTextField(""), java.awt.BorderLayout.NORTH);
jContentPane.add(getJTextField2(), java.awt.BorderLayout.EAST);
jContentPane.add(getJTextField3(), java.awt.BorderLayout.SOUTH);
jContentPane.add(getJButton(), java.awt.BorderLayout.WEST);
}
return jContentPane;
}
}
public class TestDemo { public static void main(String[] args) {
}
public void changeInfo(){
Test demo=new Test();
demo.removeAll();
demo.jLabel.setText("ddfsdfs");
demo.validate();
}
}
楼主要的其实就是这个效果嘛:package tmp;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;/**
*
* @author Stevech
*/
public class JLabelUpdateTest extends JPanel {
private JLabel myLabel;
private JTextField field_1, field_2, field_3;
private JButton btn;
/** Creates a new instance of JLabelUpdateTest */
public JLabelUpdateTest() {
setLayout(new BorderLayout());
setSize(300, 200);
myLabel = new JLabel("JLabel");
myLabel.setPreferredSize(new Dimension(10, 10));
field_1 = new JTextField();
field_2 = new JTextField();
field_3 = new JTextField();
btn = new JButton("启动");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChangeIt.changeInfo(myLabel);
}
});
add(myLabel, BorderLayout.CENTER);
add(field_1, BorderLayout.NORTH);
add(field_2, BorderLayout.EAST);
add(field_3, BorderLayout.SOUTH);
add(btn, BorderLayout.WEST);
}
public static void main(String[] args) {
JFrame frame = new JFrame("myFrame");
frame.getContentPane().add(new JLabelUpdateTest());
frame.pack();
frame.setVisible(true);
}
}class ChangeIt {
public static void changeInfo(JLabel myLabel) {
myLabel.setText("new String");
}
}没有必要什么removeAll,什么validate!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends WindowAdapter implements ActionListener {
JLabel label;
JTextField textfield1,textfield2,textfield3;
JButton button; public Test(){
JFrame f = new JFrame("Test");
Container contentPane = f.getContentPane();
contentPane.setLayout(new BorderLayout());
label = new JLabel();
textfield1 = new JTextField();
textfield2 = new JTextField();
textfield3 = new JTextField();
button = new JButton("refresh");
contentPane.add(label,BorderLayout.NORTH);
contentPane.add(textfield1,BorderLayout.WEST);
contentPane.add(textfield2,BorderLayout.EAST);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends WindowAdapter implements ActionListener {
JLabel label;
JTextField textfield1,textfield2,textfield3;
JButton button; public Test(){
JFrame f = new JFrame("Test");
Container contentPane = f.getContentPane();
contentPane.setLayout(new BorderLayout());
label = new JLabel();
textfield1 = new JTextField();
textfield2 = new JTextField();
textfield3 = new JTextField();
button = new JButton("refresh");
button.addActionListener(this);
contentPane.add(label,BorderLayout.NORTH);
contentPane.add(textfield1,BorderLayout.WEST);
contentPane.add(textfield2,BorderLayout.EAST);
contentPane.add(textfield3,BorderLayout.CENTER);
contentPane.add(button,BorderLayout.SOUTH);
f.setSize(new Dimension(200,200));
f.setVisible(true);
f.addWindowListener(this);
}
public void WindowClosing(WindowEvent e){
System.exit(1);
} public void actionPerformed(ActionEvent e){
if(e.getSource() == button) {
label.setText("");
this.validate();
}
}
public static void main(String args[]){
new Test();
}
}