窗口显示之后,add,remove组件必须在事件线程中进行,setvisible()也一样.
解决方案 »
- 准备再学习一遍Java 求大神推荐本书!
- 这是怎么回事啊
- 又来提问题啦?下拉框的
- 如何让jar中的程序不调用原来jar中的方法,而调用我修改后的方法
- 难题
- 我有一个JFrame,下面有很多JPanel,各个panel都有几个JTextField,JTextArea,我想让所有的JTextField和JTextArea都不可编辑,怎么办?
- 在类里创建一个Socket连接后,为什么不能在不同方法中使用其getOutputStream()和getInputStream()???
- 大家都来说说自己公司的经理呀,有助身心健康哦!
- 大家看看下面程序的输出结果是什末?为什末?
- 千万级别Swing支持延迟加载的三态树,树节点状态如何缓存?
- java初学提问,送分
- 小问题,大麻烦
比如我在一个类game中定义了 Label aaa
要按一个按钮bbb使aaa消失
在actionPerformed(ActionEvent e)
怎么写
remove(aaa)没有用先谢谢楼上的
然后 repaint
import javax.swing.*;
import java.awt.event.*;public class test{
public static void main(String [] args){
TestFrame tt=new TestFrame();
}
}class TestFrame extends JFrame implements ActionListener{
JLabel aaa;
JButton b;
public TestFrame(){
super(" test ");
this.getContentPane().setLayout(new FlowLayout());
this.setSize(100,100);
aaa=new JLabel("aaaa");
this.getContentPane().add(aaa);
b=new JButton("remove");
this.getContentPane().add(b);
b.addActionListener(this);
this.show();
}
public void actionPerformed(ActionEvent e){
//remove the component
this.getContentPane().remove(aaa);
//repaint the ContentPane
this.getContentPane().repaint();
}
}
public void run() {
b=new JButton("remove");
this.getContentPane().add(b);
b.addActionListener(this);
this.show(); }
}
可参考
<<Java开发中的线程安全选择与Swing>>
http://www.yesky.com/SoftChannel/72342371961929728/20030714/1714114_2.shtml