一个类extends JDialog
container c=getContentPane();
c.add(JPanel1); 开始加载是JPanel1的内容JPanel1内有一个下一步的按钮
点击下一步就显示JPnael2的内容我在下一步的单击监听事件里
remove(JPanel1);
add(JPanel2);可是没有反应,是不是应该更新JDIALOG 具体怎么做不知道或者是用隐藏的方式实现 下一步 上一步的操作JAVA图形开发的小白求指教
container c=getContentPane();
c.add(JPanel1); 开始加载是JPanel1的内容JPanel1内有一个下一步的按钮
点击下一步就显示JPnael2的内容我在下一步的单击监听事件里
remove(JPanel1);
add(JPanel2);可是没有反应,是不是应该更新JDIALOG 具体怎么做不知道或者是用隐藏的方式实现 下一步 上一步的操作JAVA图形开发的小白求指教
c.updateUI(); 这个没有啊
只有c.update();可是要带参 运行效果也不对package jframe_test;import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Jdialog extends JDialog{
private Container c;
public Jdialog(){
c=getContentPane();
c.add(jpanel1());
setLocationRelativeTo(null);
setSize(240, 150);
setVisible(true);
}
private JPanel jpanel1() {
JPanel pa=new JPanel();
JLabel lbl=new JLabel("1111");
JButton jb=new JButton("d");
jb.addActionListener(new jbActionL());
pa.add(lbl);
pa.add(jb);
return pa;
}
class jbActionL implements ActionListener{ @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
c.remove(jpanel1());
c.add(jpanel2());
c.update(getGraphics());
}
}
private JPanel jpanel2() {
JPanel pa=new JPanel();
JLabel lbl=new JLabel("22222");
JButton jb=new JButton("d");
pa.add(lbl);
pa.add(jb);
return pa;
} public static void main(String[] args) {
// TODO Auto-generated method stub
new Jdialog();
}}
c.add(jpanel2());JPanel1的实例名是pa,remove的时候应该remove pa,即:c.remove(pa); jpanel1()是一个方法的名称,在一个组件里remove 一个方法应该不可能吧