怎么点击按钮,把另一个Panel显示出来! 点击按钮1,显示Panel1,点击按钮2显示Panel2,一次类推,切按钮是用一个类装起来的,Panel1,用一个类装起来的Panel2也是用一个单独的类装起来的,Panel3也是!!请问怎么实现!!愿意教我的,可以加我QQ,我把整个工程发给你,谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 监听; 改变panel; 刷新 我是用Remove(),后再添加一个新的Panel进去但是不行,出来之后前面的那个Panel被删除了,但是后来加进去的那个Panel却没有出来!!就出现个白的,而且重新出来了一个新的框架!! 怎么刷新!!加我QQ好吗 QQ:920132 没有把顶级容器可视化,你remove的后,把新的panel加进去后,加一句,this.setVisible(true) import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class TestPanel extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; /** * @param args */ private JButton button1,button2,button3; private JPanel panel1,panel2,panel3,buttonpanel; private Container container; public TestPanel(){ super("Test Panle!"); button1=new JButton("button1"); button2=new JButton("button2"); button3=new JButton("button3"); buttonpanel=new JPanel(); buttonpanel.add(button1); buttonpanel.add(button2); buttonpanel.add(button3); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); container=getContentPane(); panel1=new JPanel(); panel2=new JPanel(); panel3=new JPanel(); panel1.add(new JLabel("1")); panel2.add(new JLabel("2")); panel3.add(new JLabel("3")); container.add(buttonpanel,BorderLayout.NORTH); setSize(300,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub new TestPanel(); } public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==button1){ container.add(panel1,BorderLayout.CENTER); setVisible(true); } if(e.getSource()==button2){ container.add(panel2,BorderLayout.CENTER); setVisible(true); } if(e.getSource()==button3){ container.add(panel3,BorderLayout.CENTER); setVisible(true); } }} unexcepted side effect 你这样的情况建议你的主面板使用java.awt.CardLayout然后把那三个Panel加进去,要给组件一个名字哦,保留CardLayout的引用,要翻转的时候使用CardLayout.show(Container parent, String name) 里面的parent就是你的主面板了,name就是你要翻转到的Panel的名字 其实这个问题还是蛮容易解决的。用Remove()这种方法,可以解决问题但是只是便面解决,而且对代码的再次使用很难最好的解决就是setvisible,这样运行起来又快而且不用加载的,不过占用内存的开支比较大 j2se 下按钮,文本的小窗口程序(最好源码) 关于从键盘输入数字 正则表达式 (gef)如何动态的刷新GraphicalEditorWithFlyoutPalette里的内容!!急啊 急救:编写一个可以同时接受1000个TCP连接的ECHO服务器 各位大哥看一下吧?谢谢 java socket 编程端口问题 菜鸟求问:import javax.servlet.*时,报包 javax.servlet 不存在 有人用过VCafe吗???来帮帮我吧!!我的查询出问题了!!!! 谁知道jdbc有什么好一点的书,一定给分 如何用java读取图片到变量里。 跪求 java 方法问题,在线等
加我QQ好吗 QQ:920132
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TestPanel extends JFrame implements ActionListener { /**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
*/
private JButton button1,button2,button3;
private JPanel panel1,panel2,panel3,buttonpanel;
private Container container;
public TestPanel(){
super("Test Panle!");
button1=new JButton("button1");
button2=new JButton("button2");
button3=new JButton("button3");
buttonpanel=new JPanel();
buttonpanel.add(button1);
buttonpanel.add(button2);
buttonpanel.add(button3);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
container=getContentPane();
panel1=new JPanel();
panel2=new JPanel();
panel3=new JPanel();
panel1.add(new JLabel("1"));
panel2.add(new JLabel("2"));
panel3.add(new JLabel("3"));
container.add(buttonpanel,BorderLayout.NORTH);
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new TestPanel();
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==button1){
container.add(panel1,BorderLayout.CENTER);
setVisible(true);
}
if(e.getSource()==button2){
container.add(panel2,BorderLayout.CENTER);
setVisible(true);
}
if(e.getSource()==button3){
container.add(panel3,BorderLayout.CENTER);
setVisible(true);
}
}}
unexcepted side effect
然后把那三个Panel加进去,要给组件一个名字哦,
保留CardLayout的引用,
要翻转的时候使用
CardLayout.show(Container parent, String name)
里面的parent就是你的主面板了,name就是你要翻转到的Panel的名字