...
◇JFrame (顶层容器):整个窗口的躯壳,包含标题栏、最小化/关闭按钮。
◇Content Pane (内容面板):窗口中间承载内容的部分。
◇Component (组件):如 JButton (按钮), JTextField (输入框), JLabel (标签)。
◇Layout Manager (布局管理器):决定组件在窗口中如何排列(是像报纸一样排版,还是水平堆叠)。
例:
public class MyWindow {
public static void main(String[] args) {
// 1. 创建窗口实例
JFrame frame = new JFrame("Ice Room");
// 2. 设置窗口默认尺寸(宽, 高)
frame.setSize(400, 300);
// 3. 设置点击关闭按钮时的默认操作(须设置,否则窗口关闭程序仍在运行)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 4. 设置窗口相对于屏幕居中
frame.setLocationRelativeTo(null);
// 5. 让窗口可见(此行通常放在最后)
frame.setVisible(true);
}
}
信息显示类JLabel 标签: 例: Label label = new JLabel("欢迎来到 NGC7023 星云", SwingConstants.CENTER); 显示简短的文本或图标 支持 HTML 标签。如果你想让文字变色或加粗,可以直接写: new JLabel("警告"),此处是html标签中包含了红色的b标签 JProgressBar 进度条: 例: JProgressBar bar = new JProgressBar(0, 100); bar.setValue(75); 展示任务完成的百分比。在处理大量统计数据或下载图片时非常有用。 ToolTip 悬停显示: 例: myButton.setToolTipText("点击此处保存当前统计结果"); 当鼠标悬停在某个组件上时,浮现一小行解释文字。输入类JTextField 单行文本框: 例: 输入少量的文字,如用户名、搜索关键词、单个统计数值 JTextArea 多行文本区: 例: JTextArea area = new JTextArea(10, 30); JScrollPane sp = new JScrollPane(area); 输入大段文字。它是不可滚动的,通常需要把它放进 JScrollPane(滚动面板)里使用。 把它放进 JScrollPane: frame.add(new JScrollPane(textArea)); JPasswordField 密码框: 例: JPasswordField pf = new JPasswordField(); 输入内容时会显示掩码(如 ****),保护隐私。 JCheckBox & JRadioButton (勾选框与单选按钮): 例: JCheckBox check = new JCheckBox("启用缓存"); JRadioButton radio = new JRadioButton("模式A"); 用途: JCheckBox 用于多选(如“同时选择均值和方差”); JRadioButton 配合 ButtonGroup 用于互斥单选动作触发类JButton 按钮: 例: 点击后执行特定的代码块 JToggleButton 开关按钮: 例: JToggleButton toggle = new JToggleButton("运行中/已停止"); 点击后会保持“按下”状态,再次点击弹回。 JMenuItem 菜单项: 例: JMenuItem item = new JMenuItem("另存为..."); fileMenu.add(item); 隐藏在 JMenuBar(菜单栏)和 JMenu(菜单)之下,用于执行全局操作(如“保存”、“退出”)。选择与容器类JComboBox 下拉列表: 例: 节省空间的单选方案 JList 列表框: 例: List<String> list = new JList<>(dataArray); 展示一长串选项,支持单选或多选。 JTabbedPane 选项卡面板: 例: tabs.addTab("数据预览", panel1); tabs.addTab("统计图表", panel2); 在一个窗口内切换不同的界面。例如,第一页放数据输入,第二页放图表展示 JSplitPane 拆分面板: 例: JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, p1, p2); 将界面分为左右或上下两部分,用户可以拖动中间的分割线来调整大小。