java如何创建界面
使用Swing创建界面
Swing是Java的标准GUI工具包,适合开发跨平台桌面应用。以下是一个基础示例:

import javax.swing.*;
public class SimpleGUI {
public static void main(String[] args) {
// 创建主窗口
JFrame frame = new JFrame("示例窗口");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
// 添加按钮和标签
JButton button = new JButton("点击");
JLabel label = new JLabel("Hello Swing!");
// 使用布局管理器
frame.setLayout(new java.awt.FlowLayout());
frame.add(button);
frame.add(label);
// 显示窗口
frame.setVisible(true);
}
}
使用JavaFX创建界面
JavaFX是Swing的现代替代方案,支持更丰富的视觉效果。需要Java 8及以上版本:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class SimpleJavaFX extends Application {
@Override
public void start(Stage primaryStage) {
Button button = new Button("点击");
Label label = new Label("Hello JavaFX!");
VBox layout = new VBox(10, button, label);
Scene scene = new Scene(layout, 300, 200);
primaryStage.setTitle("示例窗口");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
使用SWT创建界面
SWT(Standard Widget Toolkit)提供与本地操作系统更紧密的集成,适合高性能需求:
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
public class SimpleSWT {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("示例窗口");
Button button = new Button(shell, SWT.PUSH);
button.setText("点击");
button.setBounds(50, 50, 80, 30);
Label label = new Label(shell, SWT.NONE);
label.setText("Hello SWT!");
label.setBounds(50, 90, 100, 20);
shell.setSize(300, 200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
选择工具包的考虑因素
- Swing:无需额外依赖,适合简单跨平台应用。
- JavaFX:支持CSS样式、3D图形和动画,需JDK 8+或单独安装。
- SWT:性能更高,但需平台相关库(如
org.eclipse.swt)。
扩展建议
- 使用布局管理器(如
BorderLayout、GridPane)替代绝对坐标。 - 为事件监听器实现
ActionListener(Swing)或EventHandler(JavaFX)。 - 结合Maven/Gradle管理依赖(如JavaFX需添加
javafx-controls)。






