就是在使用jframedesigner创建菜单条是时候,为啥这菜单条乱码呀?
首先确认你 项目文件 的编码是啥, 都调整成 utf-8
如果这些都没问题,在启动类的 配置 vm 选项上 加上 -Dfile.encoding=UTF-8 再试试
JFrame 窗体是一个容器,它是 Swing 程序中各个组件的载体,因此,可以将 JFrame 看作是承载这些 Swing 组件的容器。
在开发应用程序时,可以通过继承 java.swing.JFrame 类来创建一个窗体,然后再在窗体中添加组件,同时为组件设置事件。由于该窗体继承了 JFrame 类,所以它拥有最大化、最小化和关闭按钮。
下面将详细讲解 JFrame 窗体在 Java 应用程序中的使用方法。
JFrame 在程序中的语法格式如下:
JFrame frame = new JFrame(title);
Container container = frame.getContentPane();
① frame:JFrame 类的对象。
② container:Container 类的对象,可以使用 JFrame 对象调用 getContentPane() 方法获取。
我们应该有这样的一个概念,就是 Swing 组件的窗体通常与组件和容器相关,所以在 JFrame 对象创建完成后,需要调用 getContentPane() 方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。通常这个容器用来包含和显示组件。如果需要将组件添加至容器,那么可以使用来自 Container 类的 add() 方法进行设置,示例代码如下:
container.add(new JButton("按钮")); //JButton按钮组件
在容器中添加组件后,也可以使用 Container 类的 remove() 方法将这些组件从容器中删除,示例代码如下:
container.remove(new JButton("按钮"));
我们来看看下面这个实例,该实例使用 JFrame 对象创建了一个窗体,然后在其中添加一个组件。
在项目中创建 MyFrame 类,该类继承 JFrame 类成为窗体类,然后在该类中创建标签组件,并添加到窗体界面中。
import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame { //定义一个类继承JFrame类
public void CreateJFrame(String title) { //定义一个CreateJFrame()方法
JFrame frame = new JFrame(title); //实例化一个JFrame对象
Container container = frame.getContentPane(); // 获取一个容器
container.setBackground(Color.CYAN); //设置容器的背景颜色
JLabel jl = new JLabel("这是一个JFrame窗体"); //创建一个JLabel标签
jl.setHorizontalAlignment(SwingConstants.CENTER); //使标签上的文字居中
container.add(jl); // 将标签添加到容器中
frame.setVisible(true); //使窗体可视
frame.setBounds(400,300,400, 300); //设置窗体显示位置和大小
frame.setDefaultCloseOperation(EXIT_ON_CLOSE); //设置窗体关闭方式
}
public static void main(String args[]) {
//在主方法中调用createJFrame()方法
new MyFrame().CreateJFrame("一个JFrame窗体");
}
}
运行本实例程序,结果如下所示:
上述程序中的 MyFrame 类继承了 JFrame 类,在 CreateJFrame() 方法中实例子化 JFrame 对象。JFrame 类的常用构造方法包括下面两种形式。
public JFrame()
public JFrame(String title)
JFrame 类中的两种构造方法分别为无参的构造方法与有参的构造方法:
第一种形式的构造方法创建一个初始不可见、没有标题的新窗体。
第二种形式的构造方法在实例化该 JFrame 对象时,创建一个不可见但具有标题的窗体。
我们可以使用 JFrame 对象调用 show() 方法使窗体可见,但是这个方法早已被新版 JDK 弃用,现在通常使用 setVisible(true) 方法使窗体可见。
同时,可以使用 setBounds(x,y,width, height) 方法设置窗体显示位置和大小,其中 x 与 y 为窗体左上角坐标,width 和 height 为窗体的宽和高。
创建窗体后,需要给予窗体一个关闭方式,可以调用 setDefaultCloseOperation() 方法关闭窗体。
Java为关闭窗体提供了多种方式,常用的有4种方式,分别为:DO_NOTHING_ON_CLOSE、DISPOSE_ON_CLOSE、HIDE_ON_CLOSE 和 EXIT_ON_CLOSE,这几种操作实质上是将一个 int 类型的常量封装在 javax.swing.WindowConstants 接口中。
具体含义如下:
关闭窗体方式 | 描述 |
---|---|
EXIT_ON_CLOSE | 退出应用程序,默认窗口关闭 |
DO_NOTHING_ON_CLOSE | 什么都不做就将窗体关闭 |
DISPOSE_ON_CLOSE | 移除窗口的默认窗口关闭操作 |
HIDE_ON_CLOSE | 隐藏窗口的默认窗口关闭 |