您的位置:首页 > 移动开发 > Objective-C

组合框、单选框、按钮、右键快捷菜单以及对话框的练习

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

}

}
 

唬唬……再接再励啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐