📜  jframe 边框 - Java (1)

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

JFrame 边框 - Java

JFrame 是一个可见的顶级 Swing 容器,用于创建 GUI 应用程序的主窗口。JFrame 可以带有边框,边框可以更改为几个不同的样式。在本文中,我们将讨论如何在 JFrame 中改变边框的样式。

改变 JFrame 边框样式

默认情况下,JFrame 边框的样式是一个简单的矩形框架。但是,使用 JFrame 类的 setUndecorated(boolean) 方法,可以删除 JFrame 的默认边框。

JFrame frame = new JFrame("JFrame Border Example");
frame.setUndecorated(true); // 删除默认边框
// 使用 getContentPane() 获取主面板并添加组件
frame.getContentPane().add(new JLabel("Hello World"));
frame.pack();
frame.setVisible(true);

以上代码将创建一个没有边框的 JFrame 窗口,并将一个 JLabel 添加到主面板上。

如果需要将 JFrame 边框更改为其他样式,可以使用 setBorder() 方法。setBorder() 方法需要一个 Border 对象作为参数,因此可以使用 Java 中提供的 Border 类来创建自定义边框。

以下示例演示如何将 JFrame 边框更改为 BevelBorder 样式:

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridLayout;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;

public class JFrameBorderExample {
    public static void main(String[] args) {
        EventQueue.invokeLater(() -> createAndShowGUI());
    }

    private static void createAndShowGUI() {
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame("JFrame Border Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setLocationRelativeTo(null);
        frame.setLayout(new GridLayout(2, 1));

        JPanel panel1 = new JPanel();
        panel1.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,
                Color.LIGHT_GRAY, Color.DARK_GRAY));
        panel1.add(new JLabel("Hello, World!"));

        JPanel panel2 = new JPanel();
        panel2.setBorder(BorderFactory.createBevelBorder(
                BevelBorder.LOWERED, Color.LIGHT_GRAY, Color.DARK_GRAY));
        panel2.add(new JLabel("This is a JFrame with BevelBorder."));

        frame.add(panel1);
        frame.add(panel2);

        frame.setVisible(true);
    }
}

在以上代码中,我们使用 setDefaultLookAndFeelDecorated(boolean) 方法设置 JFrame 的外观为默认外观。然后,我们创建了一个包含两个 JPanel 的 JFrame 对象。我们在 JPanel 上使用了 BorderFactory 类中的 createBevelBorder() 方法来创建 BevelBorder 样式的边框,并将其传递给面板的 setBorder() 方法。

总结

JFrame 是 Java Swing 库中的一个重要类,用于创建 GUI 应用程序主窗口。边框是 JFrame 的一个重要属性,可以更改其样式和风格。本文演示了如何删除 JFrame 默认样式的边框以及如何自定义 JFrame 的边框样式。