Java如何调用另一个.java文件中定义的Swing Dialog对话框
Java对话框逻辑拆分实现方案
前提说明
Java语法要求公共类名必须和文件名完全一致(大小写匹配),如果你的文件命名为java2.java,对应公共类名就为java2,建议后续可以按业务含义命名类(比如NoticeDialog),对应的文件名保持一致即可,可读性更好。
步骤1:编写java2.java文件代码
把原来内嵌的对话框逻辑全部移到这个独立类中:
package javaapplication9; import javax.swing.*; import java.awt.*; import java.awt.event.*; // 类名和文件名java2.java保持一致 public class java2 extends JDialog { // 构造方法接收父窗口实例,和原逻辑的参数对应 public java2(JFrame parentFrame) { // 调用父类JDialog的构造,参数和原代码完全一致 super(parentFrame, "Dialog", ModalityType.APPLICATION_MODAL); // 原有的对话框布局、组件、事件逻辑直接迁移过来 setLayout(new GridLayout(3,1)); setSize(100, 100); setLocationRelativeTo(null); JButton b1 = new JButton ("Click"); b1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(java2.this, "Note"); } }); add(b1); } }
步骤2:修改原java1.java中的按钮点击逻辑
把原来//Dialog code到//End dialog之间的代码全部替换为实例化自定义对话框的代码即可,修改后的点击事件部分如下:
b.addActionListener (new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ // 直接实例化独立的对话框类,调用setVisible显示即可 new java2(f).setVisible(true); } });
多对话框扩展方式
后续需要新增其他对话框时,只需新增对应的独立类文件,每个类对应一个对话框的业务逻辑,需要使用时直接实例化调用setVisible(true)即可,所有对话框逻辑完全隔离,便于维护。
内容的提问来源于stack exchange,提问作者StackUser
相关产品推荐
相关产品推荐

