📜  如何在 aa jframe 中创建边框 (1)

📅  最后修改于: 2023-12-03 15:38:12.081000             🧑  作者: Mango

如何在 JFrame 中创建边框

在 Java 中,我们可以通过在 JFrame 中使用 JPanel 来创建边框。以下是一个简单的例子展示如何实现:

import javax.swing.*;
import java.awt.*;

public class ExampleFrame extends JFrame {

    public ExampleFrame() {
        setTitle("Example Frame");
        setSize(400, 300);
        setLocationRelativeTo(null);

        // 创建 JPanel 并设置其布局
        JPanel panel = new JPanel(new GridBagLayout());

        // 创建新的边框和标题
        Border border = BorderFactory.createTitledBorder("Example Border");

        // 设置 JPanel 的边框
        panel.setBorder(border);

        // 添加控件到 JPanel 中
        JLabel label = new JLabel("Example Label");
        panel.add(label);

        // 将 JPanel 添加到 JFrame 中
        add(panel);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            ExampleFrame frame = new ExampleFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        });
    }
}

在此代码示例中,我们使用 GridBagLayout 设置了 JPanel 的布局,并使用 createTitledBorder 方法创建了一个新的边框。然后,我们将该边框应用于 JPanel,再将控件添加到 JPanel 中,最后将 JPanel 添加到 JFrame 中。

在这个例子中,我们使用了 Java 内置的边框类型,但是你也可以自定义一个边框。边框使用了 Java 中 Border 接口的实现类,例如 BevelBorderLineBorderEtchedBorderMatteBorder 等等。你可以探索 Java Swing API 的 BorderFactory 类来查找更多选项。

上述代码使用 Java 8 的 Lambda 表达式,并在 EDT 中运行 JFrame 窗口,这是最佳实践。你可以使用 SwingUtilities.invokeLater 来运行 JFrame 窗口。在许多情况下,你需要在 EDT 线程中修改 UI,该线程是专门用于处理 Swing 事件的线程。