java - 同一文件中的多个 JPanel 定义

标签 java swing class jpanel

是否可以在单个文件(类)中为您的程序定义多个 JPanel? 通常完成的方式是将 JPanel 定义为文件中的顶级类,然后将监听器类定义为顶级类内的嵌套类。但是,如果您想在同一个文件中定义多个面板(及其监听器类)而不是创建多个文件,该怎么办?抱歉,我是 Java 新手,所有内容都需要放在类中这一事实让我有点困惑。

最佳答案

是的,您可以使用内部类,例如......

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Test {

    public static void main(String[] args) {
        new Test();
    }

    public Test() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        public TestPane() {
            setLayout(new GridBagLayout());
            add(new JLabel("Bananas are green"));
        }

        @Override
        public Dimension getPreferredSize() {
            return new Dimension(200, 200);
        }

    }

}

参见Inner Class Example了解更多详情

关于java - 同一文件中的多个 JPanel 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34189114/

相关文章:

java - Android 加速度计和磁力计同时读数

java - 创建未知数量对象实例的有效方法

java - 使用 apache commons csv 按索引大小而不是 withFirstRecordAsHeader 读取 csv

java - 打印字符的最大/最小代码点时的字符串处理问题

java - 如何在输入中添加 java 图标和阵容文本?

java - JTree 难题 : Tree vs. 通过 vector 扩展进行分支

java - AWT和Swing组件一起,同步显示?

java - 使用 Spring Security 3.1 通过表单登录和 http-basic 安全性来保护相同的 RESTful 资源

java - 如何从另一个窗口将项目添加到 JList

java - 如何调用接口(interface)的特定实现类