组合框、单选框、按钮、右键快捷菜单以及对话框的练习
2011-04-24 00:53
363 查看
/** * 用户信息输入 * @author 索广宇 *@date 2011/4/23 */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class UserJFrame extends JFrame implements ActionListener, MouseListener { /** * */ private static final long serialVersionUID = 1L; private int number=1;//编号 private JTextField text_number,text_name; private JRadioButton radio_male,radio_female; private JComboBox combox_province,combox_city; private JButton btn_add; private JTextArea text_user; private Object cities[][]; private JPopupMenu popMenu;//右键快捷菜单 public UserJFrame(Object provinces[],Object cities[][]) { //设置框架 super("输入用户信息"); this.setBounds(300,240,360,200); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.getContentPane().setLayout(new GridLayout(1,2));//设置内容窗格的布局,一行两列 text_user=new JTextArea(); text_user.setEditable(false); text_user.addMouseListener(this);//让文本区注册鼠标事件监听器 this.getContentPane().add(text_user);//把文本区添加到窗格的左半部分 popMenu=new JPopupMenu();//定义一个快捷菜单 String popMenuItemStr[]={"剪切","复制","粘贴"};//定义快捷菜单中菜单项的字符串 JMenuItem popMenuItem[]=new JMenuItem[popMenuItemStr.length];//定义快捷菜单中的菜单项 for(int i=0;i<popMenuItemStr.length;i++) { popMenuItem[i]=new JMenuItem(popMenuItemStr[i]); popMenu.add(popMenuItem[i]); popMenuItem[i].addActionListener(this); } popMenuItem[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));//设置一个快捷键 text_user.add(popMenu); JPanel panel=new JPanel(new GridLayout(6,1));//增加一个6行1列的面板 this.getContentPane().add(panel);//把面板添加到窗格的右半部分 //添加窗格右半部分的组件 text_number=new JTextField("1"); text_number.setEditable(false); panel.add(text_number); text_name=new JTextField("呆呆"); panel.add(text_name); JPanel panel_rb=new JPanel(new GridLayout(1,2));//新建一个面板,用来存放单选按钮 panel.add(panel_rb); ButtonGroup btnGrp=new ButtonGroup();//创建一个按钮组,配合单选按钮使用 radio_male=new JRadioButton("男");//默认选中 btnGrp.add(radio_male); panel_rb.add(radio_male);//先将单选按钮添加到按钮组中,再添加到按钮面板中 radio_female=new JRadioButton("女",true); btnGrp.add(radio_female); panel_rb.add(radio_female); this.cities=cities; combox_province=new JComboBox(provinces); combox_province.setEditable(true); combox_province.addActionListener(this); panel.add(combox_province); combox_city=new JComboBox(cities[0]); panel.add(combox_city); btn_add=new JButton("添加"); btn_add.addActionListener(this); panel.add(btn_add); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==combox_province) { int i=combox_province.getSelectedIndex();//取得所选中项的序列号 combox_city.removeAllItems();//移除city复合框中的选项 for(int j=0;j<this.cities[i].length;j++) { combox_city.addItem(this.cities[i][j]); } } if(e.getSource()==btn_add) { if(text_name.getText().isEmpty()) JOptionPane.showMessageDialog(this,"请输入姓名"); else { String aLine=number+" "+text_name.getText()+" "; if(radio_male.isSelected()) aLine+=radio_male.getText()+" "; if(radio_female.isSelected()) aLine+=radio_female.getText()+" "; aLine+=combox_province.getSelectedItem()+" ";//获得组合框选中项的字符串 aLine+=combox_city.getSelectedItem(); //在窗格的左半部分的文本区中,显示输入的信息 text_user.append(aLine+"/n"); this.number++; text_number.setText(""+this.number); text_name.setText(""); } } if(e.getSource() instanceof JMenuItem) { if(e.getActionCommand()=="剪切") text_user.cut();//送至系统剪贴板 if(e.getActionCommand()=="复制") text_user.copy(); if(e.getActionCommand()=="粘贴") text_user.paste(); } } public static void main(String args[]) { Object provinces[]={"吉林省","湖南省","河北省"}; Object cities[][]={{"长春","吉林"},{"长沙","岳阳"},{"石家庄","邯郸"}}; new UserJFrame(provinces,cities); } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub if(e.getModifiers()==MouseEvent.BUTTON3_MASK)//如果单击的是鼠标的右键 popMenu.show(text_user,e.getX(),e.getY());//在鼠标右击的地方弹出快捷菜单 } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } }
唬唬……再接再励啊!
相关文章推荐
- 如何在IE右键菜单中添加菜单项以及如何添加IE任务栏按钮
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- VB实现右键扩展菜单以及按钮触发扩展菜单功能
- 在IE右键菜单中添加菜单项以及添加按钮
- 如何在IE右键菜单中添加菜单项以及如何添加IE任务栏按钮
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- MFC基于对话框最小化到托盘,并鼠标右键添加菜单以及对应菜单功能
- MFC(对话框鼠标右键弹出菜单)
- 搞清了两个问题: 查询TCP端口状态 以及 如何弹出右键菜单
- c# 右键单击 treeview 控件, 显示菜单 以及 从一个 form 调用 另一个form
- 为右键菜单添加进入CMD快捷方式
- 屏蔽FLEX右键菜单以及实现自定义的FLEX右键功能
- 在快捷方式的右键菜单上添加打开所在目录的菜单项
- 【转】如何添加鼠标右键菜单里的快捷图标
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 右键菜单添加包含ICON图片的快捷打开方式
- Sublime Text2篇之如何在window中的右键菜单中添加用st2打开方式以及将st2添加至系统的环境变量
- 给Ubuntu右键快捷菜单添加终端栏目
- 如何在IE右键菜单中添加菜单项以及如何添加IE任务栏按