
顶部框架设计
Jframe 界面标题JMenuBar 声明(菜单栏)相关组件 中间框架设计
Jtextarea 文本域组件JList 列表框组件JComboBox:下拉列表组件ButtonGroup 按钮组JRadioButton 单选框JCkeckBox 复选框 底部框架设计
JTextField:单行文本框组件JButton:按钮组件 右键菜单框架设计
JPopupMenu 右键菜单JRadioButtonMenuItem 包含在菜单中的复选框 初始化界面
组装底部组装选择相关的组件组装文本域和选择相关组件组装顶部组装顶部菜单组装右键菜单不需要在监听鼠标事件了定义一个方法,用于改变界面风格刷新组件的外观
顶部框架设计 Jframe 界面标题 Jframe f = new Jframe("测试Swing基本组件");
JMenuBar 声明(菜单栏)相关组件
# 创建一个菜单栏
JMenuBar menuBar = new JMenuBar();
# 创建一级菜单
JMenu fileMenue = new JMenu("文件");
JMenu editMenue = new JMenu("编辑");
JMenuItem auto = new JMenuItem("自动换行");
JMenuItem copy = new JMenuItem("复制");
JMenuItem paste = new JMenuItem("粘贴");
JMenuItem formatMenu = new JMenu("格式");
JMenuItem comment = new JMenuItem("注释");
JMenuItem cancelComment = new JMenuItem("取消注释");
中间框架设计
Jtextarea 文本域组件
原文链接
//声明文本域 Jtextarea ta = new Jtextarea(8, 20);JList 列表框组件
原文链接
//声明列表框
String[] colors = {"红色", "绿色", "蓝色"};
JList colorList = new JList(colors);
JComboBox:下拉列表组件
下拉列表的特点是将多个选项折叠在一起,只显示最前面的或被选中的一个
JComboBoxButtonGroup 按钮组colorSelect = new JComboBox ();
ButtonGroup bg = new ButtonGroup();JRadioButton 单选框
原文链接
JRadioButton male = new JRadioButton("男", false);
JRadioButton female = new JRadioButton("女", true);
JCkeckBox 复选框
JCheckBox isMarried = new JCheckBox("是否已婚?", true);
底部框架设计
JTextField:单行文本框组件
原文链接
中使用 JTextField 类实现一个单行文本框,它允许用户输入单行的文本信息
JTextField tf = new JTextField(40);JButton:按钮组件
原文链接
按钮是图形界面上常见的元素,在前面已经多次使用过它。在 Swing 中按钮是 JButton 类的对象,JButton 类的常用构造方法如下
JButton ok = new JButton("确定");
右键菜单框架设计
JPopupMenu 右键菜单
原文链接
d出菜单是一个可d出并显示一系列选项的悬浮小窗口。在实际应用中通常通过单击鼠标右键触发d出显示
JPopupMenu jPopupMenu = new JPopupMenu(); ButtonGroup poupButtonBg = new ButtonGroup();JRadioButtonMenuItem 包含在菜单中的复选框
原文链接
JRadioButtonMenuItem类表示可以包含在菜单中的复选框。选中菜单中的复选框可将控件的状态从打开更改为关闭或从关闭更改为打开
JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem(" metal 风格");
JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem("Nimbus 风格");
JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem("Windows 风格");
JRadioButtonMenuItem windowsClassicItem = new JRadioButtonMenuItem("Windows 经典风格");
JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("Motif 风格");
初始化界面
一个初始化方法 public 说明 是公用的,void说明没返回值,init是方法名 ()里面是参数列表。这里没有参数
public void init() {
}
组装底部
原文链接
JPanel 面板
JPanel 是一种中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用。JPanel 类的构造方法如下。
JPanel():使用默认的布局管理器创建新面板,默认的布局管理器为 FlowLayout。
JPanel(LayoutManagerLayout layout):创建指定布局管理器的 JPanel 对象。
public void init() {
//组装视图
//组装底部
JPanel bottomPanel = new JPanel();
bottomPanel.add(tf);
bottomPanel.add(ok);
//BorderLayout.SOUTH 边界布局。南方
f.add(bottomPanel, BorderLayout.SOUTH);
组装选择相关的组件
//组装选择相关的组件
JPanel selectPanel = new JPanel();
//colorSelect.addItem 颜色选择。增加列表项
colorSelect.addItem("红色");
colorSelect.addItem("绿色");
colorSelect.addItem("蓝色");
//selectPanel 选择面板
selectPanel.add(colorSelect);
bg.add(male);
bg.add(female);
//JPanel 默认位置中间
selectPanel.add(male);
selectPanel.add(female);
selectPanel.add(isMarried);
组装文本域和选择相关组件
createHorizontalBox()
创建一个从左到右显示其组件的 Box。
Box容器垂直排列
Box topLeft = Box.createVerticalBox();
topLeft.add(ta);
topLeft.add(selectPanel);
组装顶部
Box top = Box.createHorizontalBox();
top.add(topLeft);
top.add(colorList);
f.add(top);
组装顶部菜单
formatMenu.add(comment);
formatMenu.add(cancelComment);
editMenue.add(auto);
editMenue.addSeparator();
editMenue.add(copy);
editMenue.add(paste);
editMenue.addSeparator();
editMenue.add(formatMenu);
menuBar.add(fileMenue);
menuBar.add(editMenue);
f.setJMenuBar(menuBar);
组装右键菜单
poupButtonBg.add(metalItem);
poupButtonBg.add(nimbusItem);
poupButtonBg.add(windowsItem);
poupButtonBg.add(windowsClassicItem);
poupButtonBg.add(motifItem);
//ActionListener 监听器
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//当前选择的是哪一个风格
String actionCommand = e.getActionCommand();
try {
changeFlavor(actionCommand);
}catch (Exception ex){
ex.printStackTrace();
}
}
};
metalItem.addActionListener(listener);
nimbusItem.addActionListener(listener);
windowsItem.addActionListener(listener);
windowsClassicItem.addActionListener(listener);
motifItem.addActionListener(listener);
jPopupMenu.add(metalItem);
jPopupMenu.add(nimbusItem);
jPopupMenu.add(windowsItem);
jPopupMenu.add(windowsClassicItem);
jPopupMenu.add(motifItem);
不需要在监听鼠标事件了
ta.setComponentPopupMenu(jPopupMenu);
f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new SwingComponentDemo().init();
}
定义一个方法,用于改变界面风格
private void changeFlavor(String command) throws Exception{
switch (command){
case "metal 风格":
UIManager.setLookAndFeel("javax.swing.plaf.metal.metalLookAndFeel");
break;
case "Nimbus 风格":
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
break;
case "Windows 风格":
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
break;
case "Windows 经典风格":
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
break;
case "Motif 风格":
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
break;
}
刷新组件的外观
SwingUtilities.updateComponentTreeUI(f.getContentPane());
SwingUtilities.updateComponentTreeUI(menuBar);
SwingUtilities.updateComponentTreeUI(jPopupMenu);
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)