JAVA SWING 问题 在java swing 编程中,假设:有一个界面由三个面板组成,如Panel1Panel2Panel3其中Panel2中的内容是不固定的,根据Panel1中的按钮来显示不同的内容,请问如何实现??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 panel1 中的 按钮 加上监听器然后根据 监听到的事件的信息判断 修改panel2里面的内容 不知道你哪一块不明白 都是对象 获取到 panel2的对象直接修改就行了 对panel1的按钮进行监听,实现修改panel2内容的方法。比如在panel2中放个文本域,利用setText()来修改器内容。 panel1的按钮事件就是绘制panel2 在panel1上的按钮加一个监听器,然后通过监听来改变panel2 这个说法很对。利用panel1里的按钮事件来控制panel2的重绘完全可以实现, import java.awt.BorderLayout;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 Demo extends JFrame{ private int counter=0; private JPanel p1=new JPanel(); private JPanel p2=new JPanel(); private JButton b1=new JButton("点我刷新P2"); private JButton b2=new JButton("我是P2里的"); private JButton b3=new JButton("我是P2里的,刷新出来的"); public Demo(){ this.add(p1,BorderLayout.NORTH); p1.add(b1); this.add(p2,BorderLayout.CENTER); this.setVisible(true); this.setTitle("Demo"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(400,400); this.setLocationRelativeTo(null); b1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub counter++; p2.removeAll(); new Thread(new Runner(p2)).start(); } }); } class Runner implements Runnable{ private JPanel panel; Runner(JPanel panel){ this.panel=panel; } public void run(){ if(counter%2==0){ panel.add(b2); } else panel.add(b3); panel.updateUI(); } } public static void main(String[] args){ new Demo(); }}给你吧。可惜只30分。 到主机 的 TCP/IP 连接失败 定时器问题,为什么没有执行! 求一分割字符串的正则表达式 大虾们帮小弟解决一个低级问题 谢谢谢谢谢谢谢谢谢谢谢! 求助~~ log4j中如何实现日志定位到GUI组件,谢谢 太爽了 爽得要命 爽得吐血 求助.高手请进呀. 开发进销存软件是用JAVA还是ASP.NET?JAVA和ASP.NET哪个容易上手吗?主要是这两个都不会,但有很好的编程基础。 如何配置JAVA的开发环境 swing 页面跳转 下一步怎么显示新页面 一般泛型用的貌似不多
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 Demo extends JFrame{
private int counter=0;
private JPanel p1=new JPanel();
private JPanel p2=new JPanel();
private JButton b1=new JButton("点我刷新P2");
private JButton b2=new JButton("我是P2里的");
private JButton b3=new JButton("我是P2里的,刷新出来的");
public Demo(){
this.add(p1,BorderLayout.NORTH);
p1.add(b1);
this.add(p2,BorderLayout.CENTER);
this.setVisible(true);
this.setTitle("Demo");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400,400);
this.setLocationRelativeTo(null);
b1.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
counter++;
p2.removeAll();
new Thread(new Runner(p2)).start();
}
});
}
class Runner implements Runnable{
private JPanel panel;
Runner(JPanel panel){
this.panel=panel;
}
public void run(){
if(counter%2==0){
panel.add(b2);
}
else
panel.add(b3);
panel.updateUI();
}
}
public static void main(String[] args){
new Demo();
}}
给你吧。可惜只30分。