我自己写了个监听器,目的是在一个panel 上面删除原来的加载的panel,然后再添加一个别的控件,目的是想提高重用性,
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
blank.removeAll();
blank.add(panel);
}//这是可以通过的,并且能达到目
于是我就写了下面一个类
class createActionListener implements ActionListener{
private JPanel _blank,pui;
public createActionListener(JPanel b,JPanel p){
_blank=b;
pui=p;
}
public void actionPerformed(ActionEvent e) {
blank.removeAll();
_blank.add(pui);
}
}
**************************
在实际调用的时候是这样写的
button.addActionListener(new ActionListener(blank,panel));
但没有任何结果,谁能告诉我为甚啊????
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
blank.removeAll();
blank.add(panel);
}//这是可以通过的,并且能达到目
于是我就写了下面一个类
class createActionListener implements ActionListener{
private JPanel _blank,pui;
public createActionListener(JPanel b,JPanel p){
_blank=b;
pui=p;
}
public void actionPerformed(ActionEvent e) {
blank.removeAll();
_blank.add(pui);
}
}
**************************
在实际调用的时候是这样写的
button.addActionListener(new ActionListener(blank,panel));
但没有任何结果,谁能告诉我为甚啊????
解决方案 »
- 疑惑,java的编码风格
- XML在Linux下解析报错,但在Window下支行正常,有没有懂的帮助看看
- 如何提高HashMap的效率
- "Frame1.java": Fatal Error: Unable to locate package java.lang in classpath or bootclasspath是怎么回事啊??
- 请问为什么用appletviewer能看到结果,而 IE 却不能呢?
- 急问题!
- 用空的就请进来帮java版一个忙吧!
- 请问那里有jbuilder7或jbuilder6的电子书籍下载?
- 如何判别按下的是鼠标的左键和右键?
- java nio socket同时注册多个事件问题
- 帮忙 java实现数据库传递数据时候的问题
- 崩溃了,连HELLO WORLD都编译不过去
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Test {
private JFrame frame = null; private JButton button = null; private JPanel pane = null; public Test() {
frame = new JFrame("Test");
pane = new JPanel();
button = new JButton("更换组件");
button.addActionListener(new CreateActionListener(pane, new JLabel("想换的新组件")));
pane.add(new JButton("老组件"));
frame.getContentPane().add(pane);
frame.getContentPane().add(button, BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
} public static void main(String[] args) {
new Test();
}
}class CreateActionListener implements ActionListener { private JPanel pane = null;
private JLabel label = null;
public CreateActionListener(JPanel pane, JLabel label) {
this.pane = pane;
this.label = label;
} public void actionPerformed(ActionEvent e) {
pane.removeAll();
pane.add(label);
pane.updateUI(); // 重点在这里
}
}
谢谢;
我后来 用了2个方法来解决这个问题的;
先panel.setVisible(false);
再panel.setVisible(true);现在看看好像你的方法更简便;