📅  最后修改于: 2023-12-03 15:38:12.081000             🧑  作者: Mango
在 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 接口的实现类,例如 BevelBorder
,LineBorder
,EtchedBorder
和 MatteBorder
等等。你可以探索 Java Swing API 的 BorderFactory 类来查找更多选项。
上述代码使用 Java 8 的 Lambda 表达式,并在 EDT 中运行 JFrame
窗口,这是最佳实践。你可以使用 SwingUtilities.invokeLater
来运行 JFrame
窗口。在许多情况下,你需要在 EDT 线程中修改 UI,该线程是专门用于处理 Swing 事件的线程。