创建Swing Java应用程序的正确方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建Swing Java应用程序的正确方法相关的知识,希望对你有一定的参考价值。
我之前有过在学校学习应用程序的经验,所以我知道它们是如何工作的并且设计得很好,但我不确定设置应用程序的最佳方法。
我们只在学校创建了较小的程序,所以我们几乎所有的代码都在构造函数中,但我想创建更大的东西,并且不确定我应该如何设置。
我的基类有构造函数,它将创建我将在整个应用程序中使用的JFrame,但是我要添加组件或使用动作侦听器来创建哪些类?我不确定这样做的正确方法,所以一个指导步骤将是伟大的。
这是我的类声明/构造函数:
public class SwingApp1 extends JFrame{
public SwingApp1() {
setTitle("Greens Tracker");
setSize(800,500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
现在,我应该在主要内容中添加什么,以及以何种方式添加组件?
任何帮助表示赞赏,谢谢!
设置JFrame的好方法是
public GUI() {
buildGUI();
}
private void buildGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(500, 300);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new GUI().setVisible(true);
}
});
}
我希望它有帮助:)
该计划从主要开始:
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new SwingApp1().setVisible(true);
}
});
}
自Java 8以来可以缩写为:
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new SwingApp1().setVisible(true));
}
JFrame构造函数可以如下。一个setVisible我留给调用,pack()
将布局内容。
public SwingApp1() {
setTitle("Greens Tracker");
setSize(800,500);
... add components, maybe in a separate method.
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
实际上看看MVC,模型视图控制器。
我通常将XyzApplication类作为控制器,JFrame是主视图,而单独保存的数据(在应用程序中)是模型。
应该提到的是,没有FXML布局文件,JavaFX可能稍微更可取。更多的学习涉及,但更好的行为。
其他建议是使用像maven这样的构建基础架构。这有助于库(“依赖项”)并提供“最佳实践”,如构建目录(src / main / java,src / test / java,src / main / resources ...)。
当然是像git或mercurial这样的版本控制系统。
以上是关于创建Swing Java应用程序的正确方法的主要内容,如果未能解决你的问题,请参考以下文章