GUI编程(三)-----非容器组件
常用的非容器组件有:JLabel、JTextField、JPasswordField、JRadioButton、JCheckBox、JComboBox、JTextArea。
基本用法:
public static void main(String[] args) { JFrame frame= new JFrame("注册"); frame.setSize(500, 400); frame.setLocationRelativeTo(null); //创建一个面板 JPanel panel = new JPanel(); frame.add(panel); //用户名 JLabel nameLabel = new JLabel("用户名"); //用户名的输入框 JTextField nameField = new JTextField(12); //把用户名的组件添加到面板上 panel.add(nameLabel); panel.add(nameField); //密码 JLabel passLabel= new JLabel("密码"); //密码框 JPasswordField passField = new JPasswordField(12); //把密码的组件添加到面板 panel.add(passLabel); panel.add(passField); //性别--单选框 JLabel sexLabel = new JLabel("性别"); JRadioButton man = new JRadioButton("男",true); JRadioButton woman = new JRadioButton("女"); //如果是单选框必须要进行分组,同一个组的单选框只能选择其中的一个 ButtonGroup group = new ButtonGroup(); group.add(woman); group.add(man); //把性别组件添加到面板上 panel.add(sexLabel); panel.add(man); panel.add(woman); //来自城市--->下拉框 JLabel cityLabel = new JLabel("来自的城市"); Object[] arr = {"北京","上海","广州","深圳","湛江"}; JComboBox citys = new JComboBox(arr); panel.add(cityLabel); panel.add(citys); //兴趣爱好---->复选框 JLabel hobitLabel = new JLabel("兴趣爱好:"); JCheckBox checkBox1 = new JCheckBox("篮球",true); JCheckBox checkBox2 = new JCheckBox("java",true); JCheckBox checkBox3 = new JCheckBox("javascript"); JCheckBox checkBox4 = new JCheckBox("android"); panel.add(hobitLabel); panel.add(checkBox1); panel.add(checkBox2); panel.add(checkBox3); panel.add(checkBox4); //个人简介 JLabel jLabel = new JLabel("个人简介"); JTextArea area = new JTextArea(20, 15); area.setLineWrap(true); //设置自动换行 panel.add(jLabel); panel.add(area); frame.setVisible(true); }
菜单组件
菜单组件是用来描述一个菜单的。主要用到的组件有JMenuBar、JMenu、JMenuItem
用法如下:
1 public class Demo2 { 2 3 JFrame frame = new JFrame("记事本"); 4 5 //菜单条 6 JMenuBar bar = new JMenuBar(); 7 8 //文件菜单 9 JMenu fileMenu = new JMenu("文件"); 10 JMenu editMenu = new JMenu("编辑"); 11 12 JMenu switchMenu = new JMenu("切换工作目录"); 13 14 15 //菜单项 16 JMenuItem openMenu = new JMenuItem("打开"); 17 JMenuItem saveMenu = new JMenuItem("保存"); 18 19 JMenuItem aboutMenu = new JMenuItem("关于"); 20 JMenuItem closeMenu = new JMenuItem("关闭"); 21 22 23 JMenuItem workMenu1 = new JMenuItem("0910project"); 24 JMenuItem workMenu2 = new JMenuItem("1208project"); 25 JMenuItem workMenu3 = new JMenuItem("1110project"); 26 27 28 29 JTextArea area = new JTextArea(20,30); 30 31 public void initNotepad(){ 32 //菜单添加菜单项目 33 fileMenu.add(openMenu); 34 fileMenu.add(saveMenu); 35 36 editMenu.add(aboutMenu); 37 editMenu.add(closeMenu); 38 39 //复选菜单 40 switchMenu.add(workMenu1); 41 switchMenu.add(workMenu2); 42 switchMenu.add(workMenu3); 43 //菜单添加菜单就是复选菜单 44 fileMenu.add(switchMenu); 45 46 47 48 //菜单条添加菜单 49 bar.add(fileMenu); 50 bar.add(editMenu); 51 52 //添加菜单条 53 frame.add(bar,BorderLayout.NORTH); 54 frame.add(area); 55 frame.setSize(500, 400); 56 frame.setLocationRelativeTo(null); 57 frame.setVisible(true); 58 } 59 60 public static void main(String[] args) { 61 new Demo2().initNotepad(); 62 } 63 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率