3个回答
展开全部
在窗体1和窗体2的构造函数中添加带有窗体3类型的参数的构造函数,在窗体3中预设修改窗体3中改变控件显示的方法接口,在窗体1和窗体2的对应控件的监听中调用该方法接口
比如
class W1 extends JFrame{
public W1(){}
public W1(W3 w){
添加控件侦听{
w.setXX();}
}}
class W2 extends JFrame{
public W2(){}
public W2(W3 w){
添加控件侦听{
w.setXX();}
}}
class W3 extends JFrame{
public W3(){}
public void setXX(){}//修改控件显示的方法接口
}
public class Main{
public static void main(String args[]){
W3 w3=new W3();
W1 w1=new W1(w3);
W2 w2=new W2(w3);
w1.setVisible(true);
w2.setVisible(true);
w3.setVisible(true);}}
比如
class W1 extends JFrame{
public W1(){}
public W1(W3 w){
添加控件侦听{
w.setXX();}
}}
class W2 extends JFrame{
public W2(){}
public W2(W3 w){
添加控件侦听{
w.setXX();}
}}
class W3 extends JFrame{
public W3(){}
public void setXX(){}//修改控件显示的方法接口
}
public class Main{
public static void main(String args[]){
W3 w3=new W3();
W1 w1=new W1(w3);
W2 w2=new W2(w3);
w1.setVisible(true);
w2.setVisible(true);
w3.setVisible(true);}}
展开全部
两个窗体的类里有第三个窗体的实例引用,不管哪个窗体里的内容被选中时只要对引用进行操作更改第三个窗体显示就行
追问
能不能具体到代码,我调试不出来.......
追答
public class JavaApplication {
public static void main(String[] args) throws IOException {
new f3();
}
}
class f1 extends JFrame {
public f1(final f3 main) {
final JLabel label = new JLabel("frame1");
label.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
main.changeValue(label.getText());
}
});
this.add(label);
this.setSize(100, 50);
this.setLocation(100, 400);
this.setVisible(true);
}
}
class f2 extends JFrame {
public f2(final f3 main) {
final JLabel label = new JLabel("frame2");
label.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
main.changeValue(label.getText());
}
});
this.add(label);
this.setSize(100, 50);
this.setLocation(100, 300);
this.setVisible(true);
}
}
class f3 extends JFrame {
JLabel label = new JLabel("frame3");
public f3() {
new f1(this);
new f2(this);
this.add(label);
this.setSize(100, 50);
this.setLocation(100, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void changeValue(String v) {
label.setText("value from:"+v);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体的swing我不太了解,但是按钮内容可以先放在一个static的变量中,然后在其他类总直接取得就行了。static是唯一的,所以不用担心取不到值的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询