java窗体Swing效果体验(并没有什么卵用)

代码(插入的图片没有显示 可能是图片大小问题)

import java.awt.BorderLayout;

import java.awt.Button;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.net.NetworkInterface;


import javax.naming.directory.SearchControls;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButton;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.plaf.ColorChooserUI;


public class SwingComponent {
JFrame f = new JFrame();
Icon okIcon = new ImageIcon("Icon/ok.ipg");
JButton ok = new JButton("确认", okIcon);
// 定义一个单选按钮,初始处于选中状态
JRadioButton male = new JRadioButton("男", true);
// 定义一个单选按钮 ,初始状态处于选中状态
JRadioButton female = new JRadioButton("女", true);
// 定义一个ButtonGroup 将上面两个JRadiobutton组合在一起
ButtonGroup bg = new ButtonGroup();
// /定义一个复选框,初始处于没有选中
JCheckBox marred = new JCheckBox("是否已婚", false);
String[] clors = { "红色", "蓝色", "橘色" };
// 定义一个下拉选框
JComboBox colorChooser = new JComboBox();
JList colorList = new JList(clors);
// 定义一个8 行 2 0列的文本域
JTextArea ta = new JTextArea(8, 20);
// 定义一个 40列的单行文本域
JTextField name = new JTextField();
JMenuBar mb = new JMenuBar();
JMenu file = new JMenu("文件");
JMenu edit = new JMenu("编辑");
// 创建新建菜单项 并为之指定图标
Icon newIcon = new ImageIcon("ico/new.png");
JMenuItem newItem = new JMenuItem("新建", newIcon);
// 创建保存
Icon saveIcon = new ImageIcon("ico/save.png");
JMenuItem saveItem = new JMenuItem("保存", saveIcon);
// 创建 退出菜单项 并为之指定图标
Icon exitIcon = new ImageIcon("ico/exit.png");
JMenuItem exitItem = new JMenuItem("退出", exitIcon);
JCheckBoxMenuItem autowrop = new JCheckBoxMenuItem("自动换行");
// 创建复制菜单项 并为之指定图标
JMenuItem copyItem = new JMenuItem("复制", new ImageIcon("ico/copy.png"));
// 创建粘贴菜单项 并为之指定图标
JMenuItem pastItem = new JMenuItem("粘贴", new ImageIcon("ico/past.png"));
JMenu format = new JMenu("格式");
JMenuItem commentItem = new JMenuItem("注释");
JMenuItem cancelItem = new JMenuItem("取消注释");
// 定义一个右键菜单用于设计程序风格


JPopupMenu pop = new JPopupMenu();
// 用于组合三个风格菜单项的ButtonGroup
ButtonGroup flavorGroup = new ButtonGroup();
// 创建三个单选框按钮,用于设定程序的外观风格
JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem("Metal风格", true);
JRadioButtonMenuItem windowslItem = new JRadioButtonMenuItem("windows风格");
JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("motif风格");
// 用于执行界面初始化 的 init方法


public static void main(String[] args) {


// 设置Swing窗口使用java风格
//
new SwingComponent().init();


}


public void init() {


// 创建一个装载了 文本框按钮的Jpanel
JPanel bootom = new JPanel();
bootom.add(name);
bootom.add(ok);
f.add(bootom, BorderLayout.SOUTH);
// 创建一个装载了下拉选择框 三个JCheckBox的JPanel
JPanel checkPanel = new JPanel();
checkPanel.add(colorChooser);
bg.add(male);
bg.add(female);
checkPanel.add(male);
checkPanel.add(female);
checkPanel.add(marred);
// 创建一个垂直排列组件的box
Box topLeft = Box.createVerticalBox();
// 使用JScrollPane作为普通组件的JViewPort
JScrollPane taJsp = new JScrollPane(ta);
topLeft.add(taJsp);
topLeft.add(checkPanel);
// 创建一个水平排列组件的box 盛放topLeft colorList
Box top = Box.createHorizontalBox();
top.add(topLeft);
top.add(colorList);
// 将 top box 添加到窗口的中间
f.add(top);
// 下面开始组合菜单 并且为菜单设置监听器
// 为newItem设置快捷键 设置快捷键时要使用大写字母
newItem.setAccelerator(KeyStroke.getKeyStroke('Q', InputEvent.CTRL_MASK));//
newItem.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("'用户单击了新建菜单\n");


}
});


saveItem.setAccelerator(KeyStroke.getKeyStroke('W', InputEvent.CTRL_MASK));
saveItem.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("'用户单击了保存菜单\n");


}
});
exitItem.setAccelerator(KeyStroke.getKeyStroke('E', InputEvent.CTRL_MASK));
exitItem.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("'用户单击了退出菜单\n");


}
});
// 为file菜单添加菜单项
file.add(newItem);
file.add(saveItem);
file.add(exitItem);
// 为edit菜单添加菜单项
edit.add(autowrop);
// 使用addSeparator方法添加菜单分割
edit.addSeparator();
edit.add(copyItem);
edit.add(pastItem);
// 为commentItem组件添加提示信息
commentItem.setToolTipText("将代码注释起来");
// 为format菜单添加菜单项
format.add(commentItem);
format.add(cancelItem);
// 使用添加 new JMenuItem("-")的方式不能添加菜单分隔符
edit.add(new JMenuItem("-"));
edit.add(format);
// 将 file edit菜单添加到mb菜单条
mb.add(file);
mb.add(edit);
// 为f窗口设置菜单条
f.setJMenuBar(mb);
// 组合安装右键菜单
flavorGroup.add(metalItem);
flavorGroup.add(windowslItem);
flavorGroup.add(motifItem);
pop.add(metalItem);
pop.add(windowslItem);
pop.add(motifItem);
// 为菜单键创建事件 监听器
ActionListener flavorListener = new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {
try {
if (e.getActionCommand().equals("Metal风格")) {
changeFlavor(1);
} else if (e.getActionCommand().equals("windows风格")) {
changeFlavor(2);
} else if (e.getActionCommand().equals("motif风格")) {
changeFlavor(3);
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


}


};


// 为三个时间添加监听器
metalItem.addActionListener(flavorListener);
windowslItem.addActionListener(flavorListener);
motifItem.addActionListener(flavorListener);
//
ta.setComponentPopupMenu(pop);
// 设置关闭窗口时 退出程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}


// 定义一个方法用于改变界面风格
public void changeFlavor(int fl) throws Exception {
// TODO Auto-generated method stub
switch (fl) {
case 1:
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
break;
case 2:


UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
break;
case 3:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");


break;


}
// 更新f窗口内顶级容器以及内部所有组件的ui
SwingUtilities.updateComponentTreeUI(f.getContentPane());
// 更新mb菜单条以及内部所有组件
SwingUtilities.updateComponentTreeUI(mb);
// 更新pop有选择键以及内部所有组件
SwingUtilities.updateComponentTreeUI(pop);


}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值