在 java swing中,怎样将两个不同窗体上被选中的按钮上的内容,同时显示在第三个窗体上?能不能具体一些。

最好有代码。谢谢

在窗体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);}}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-30
两个窗体的类里有第三个窗体的实例引用,不管哪个窗体里的内容被选中时只要对引用进行操作更改第三个窗体显示就行追问

能不能具体到代码,我调试不出来.......

追答

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);
}
}

本回答被提问者采纳
第2个回答  2011-12-29
具体的swing我不太了解,但是按钮内容可以先放在一个static的变量中,然后在其他类总直接取得就行了。static是唯一的,所以不用担心取不到值的问题。
相似回答