JAVA基础-GUI攻略
1. GUI概述
GUI即图形用户界面(Graphical User Interface),是用户与操作系统的交互界面。在Java中,使用Java Swing和JavaFX等框架来编写GUI应用程序。
Swing是一套Java原生的GUI控件,可以在几乎所有的Java平台上运行。JavaFX是Java平台的一个富客户端平台,提供了可扩展性和渲染性能更高的GUI控件。
2. Java Swing
在Java Swing中,一个GUI程序的主要组成部分包括:
2.1 JFrame
JFrame是一个顶层窗口,通常作为一个GUI程序的主窗口。可以使用JFrame的构造方法创建一个新的窗口,并设置标题、大小、位置等属性。
示例:
import javax.swing.JFrame;
public class MyFrame extends JFrame {
public MyFrame() {
setTitle("My Frame");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
frame.setVisible(true);
}
}
2.2 JPanel
JPanel是一种容器,可以用来组合其他GUI控件。可以使用JPanel的构造方法来创建一个新的JPanel,并将它添加到JFrame中。
示例:
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyPanel extends JPanel {
public MyPanel() {
add(new JLabel("Hello, world!"));
}
public static void main(String[] args) {
JFrame frame = new JFrame("My Frame");
MyPanel panel = new MyPanel();
frame.add(panel);
frame.setSize(300, 200);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
2.3 JButton
JButton是一种按钮,可以响应用户的点击操作。可以使用JButton的构造方法来创建一个新的按钮,并指定按钮的标签、事件监听器等属性。
示例:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MyButton extends JButton implements ActionListener {
public MyButton(String label) {
super(label);
addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
System.out.println("你点击了按钮");
}
public static void main(String[] args) {
JFrame frame = new JFrame("My Frame");
JPanel panel = new JPanel();
MyButton button = new MyButton("Click Me!");
panel.add(button);
frame.add(panel);
frame.setSize(300, 200);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
3. JavaFX
在JavaFX中,一个GUI程序的主要组成部分包括:
3.1 Stage
Stage是一个顶层窗口,通常作为一个GUI程序的主窗口。可以使用Stage的构造方法创建一个新的窗口,并设置标题、大小、位置等属性。
示例:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class MyStage extends Application {
public void start(Stage stage) {
Label label = new Label("Hello, world!");
Scene scene = new Scene(label, 300, 200);
stage.setTitle("My Stage");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
3.2 Pane
Pane是一种容器,可以用来组合其他GUI控件。可以使用Pane的构造方法来创建一个新的Pane,并将它添加到Stage中。
示例:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MyPane extends Application {
public void start(Stage stage) {
Label label = new Label("Hello, world!");
StackPane pane = new StackPane();
pane.getChildren().add(label);
Scene scene = new Scene(pane, 300, 200);
stage.setTitle("My Pane");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
3.3 Button
Button是一种按钮,可以响应用户的点击操作。可以使用Button的构造方法来创建一个新的按钮,并指定按钮的标签、事件监听器等属性。
示例:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MyButton extends Application {
public void start(Stage stage) {
Button button = new Button("Click Me!");
button.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
System.out.println("你点击了按钮");
}
});
StackPane pane = new StackPane();
pane.getChildren().add(button);
Scene scene = new Scene(pane, 300, 200);
stage.setTitle("My Button");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
4. 总结
Java Swing和JavaFX都是Java GUI编程的重要框架。使用Swing和JavaFX,我们可以方便地创建各种GUI程序,并添加窗口、容器、按钮等控件。以上是Java基础-GUI的完整攻略,包括了JFrame、JPanel、JButton以及Stage、Pane、Button的使用示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA基础-GUI - Python技术站