javaswing多个类怎么共用一个窗体
时间: 2024-03-10 10:44:18 浏览: 63
在Java Swing中,可以通过继承JFrame类来创建一个窗体。如果要让多个类共用一个窗体,可以将这个JFrame对象作为参数传递给这些类的构造函数。这样,在这些类中就可以直接使用这个JFrame对象来进行界面的组件的添加和事件的处理等操作。
以下是一个示例代码,其中有两个类A和B都需要使用同一个窗体:
```java
import javax.swing.*;
public class MainFrame extends JFrame {
public MainFrame() {
// 设置窗体标题、大小和关闭操作
setTitle("Main Frame");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
// 创建一个Main Frame对象
MainFrame frame = new MainFrame();
// 创建A和B对象,并将Main Frame对象作为参数传递给它们的构造函数
A a = new A(frame);
B b = new B(frame);
}
}
public class A {
private JFrame frame;
public A(JFrame frame) {
this.frame = frame;
// 在窗体中添加一个按钮
JButton button = new JButton("Button in A");
frame.add(button);
// 处理按钮点击事件
button.addActionListener(e -> {
JOptionPane.showMessageDialog(frame, "Button in A was clicked!");
});
}
}
public class B {
private JFrame frame;
public B(JFrame frame) {
this.frame = frame;
// 在窗体中添加一个标签
JLabel label = new JLabel("Label in B");
frame.add(label);
}
}
```
在上面的示例代码中,MainFrame类是一个继承自JFrame类的窗体类。在它的构造函数中设置了窗体的标题、大小和关闭操作,并显示窗体。在main函数中创建了一个MainFrame对象,并将它作为参数传递给了A和B类的构造函数。
A和B类都有一个私有的JFrame对象,这个对象是在构造函数中传递过来的。在A类的构造函数中,我们在窗体中添加了一个按钮,并处理了它的点击事件。在B类的构造函数中,我们在窗体中添加了一个标签。
这样,A和B类就可以共用同一个窗体了。当我们运行这个程序时,就会看到一个窗体,里面有一个按钮和一个标签。当我们点击按钮时,会弹出一个对话框,提示按钮被点击了。
阅读全文