是否可以在单个文件(类)中为您的程序定义多个 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/