兴趣爱好选择
随堂练习实验目的:1.掌握Swing常用的组件的使用;2.掌握程序界面开发的步骤;3.掌握事件监听器的使用。实验内容:在文本框中输入姓名,选择性别(单选)、爱好(可多选)、未来职业(下拉框),单击“确定”按钮,弹出消息提示框未来职业的下拉框:界面信息:输入信息点击确定:源代码:package demo;import java.awt.GridLayout;import java.awt.event
·
随堂练习
实验目的:
- 1.掌握Swing常用的组件的使用;
- 2.掌握程序界面开发的步骤;
- 3.掌握事件监听器的使用。
实验内容:
在文本框中输入姓名,选择性别(单选)、爱好(可多选)、未来职业(下拉框),单击“确定”按钮,弹出消息提示框
未来职业的下拉框:
界面信息:
输入信息点击确定:
源代码:
package demo;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Login extends JFrame implements ActionListener{
JLabel jl1 = new JLabel("姓名:");//标签
JTextField jtf1 = new JTextField(15);
//性别-->单选框
JLabel sexLabel = new JLabel("性别:");//标签
JRadioButton man = new JRadioButton("男");
JRadioButton woman = new JRadioButton("女");
//如果是单选框 必须要进行分组 同一个组的单选框 只能选择其中一个
ButtonGroup group = new ButtonGroup();
//兴趣爱好-->复选框
JLabel hobbyLabel = new JLabel("爱好:");
JCheckBox checkbox1 = new JCheckBox("音乐");
JCheckBox checkbox2 = new JCheckBox("运动");
JCheckBox checkbox3 = new JCheckBox("上网");
//未来职业
JLabel jobLabel=new JLabel("未来职业:");
JComboBox<String> job = new JComboBox<String>();//下拉框
JButton jb1 = new JButton("确定");//按钮
JButton jb2 = new JButton("取消");
JPanel jp1 = new JPanel();//容器
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
JPanel jp4 = new JPanel();
JPanel jp5 = new JPanel();
public Login() {
this.setLayout(new GridLayout(5,1));
this.setTitle("兴趣爱好选择");
this.setBounds(400, 400, 600, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jp1.add(jl1);//第一行放入容器1
jp1.add(jtf1);
jp2.add(sexLabel);//单选框
jp2.add(man);
jp2.add(woman);
man.setActionCommand("男");
woman.setActionCommand("女");
group.add(man);
group.add(woman);
jp3.add(hobbyLabel);//爱好
jp3.add(checkbox1);
jp3.add(checkbox2);
jp3.add(checkbox3);
jp4.add(jobLabel);//职业
jp4.add(job);
job.addItem("软件工程师");
job.addItem("经济专家");
job.addItem("老师");
job.addItem("创业");
jp5.add(jb1);//按钮
jp5.add(jb2);
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.add(jp5);
this.man.addActionListener(this);//注册监听器
this.woman.addActionListener(this);
this.checkbox1.addActionListener(this);
this.checkbox2.addActionListener(this);
this.checkbox3.addActionListener(this);
this.job.addActionListener(this);
this.jb1.addActionListener(this);
this.jb2.addActionListener(this);
}
public static void main(String[] args) {
Login login = new Login();//实例
login.setVisible(true);//可见性
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1) {
String hobby ="";
String name=jtf1.getText();//获取文本框中的姓名
String sex=group.getSelection().getActionCommand();//getSelection()返回所选按钮的型号,getActionCommand()获取事件相关信息
if(checkbox1.isSelected()) hobby+=checkbox1.getText()+" ";
if(checkbox2.isSelected()) hobby+=checkbox2.getText()+" ";
if(checkbox3.isSelected()) hobby+=checkbox3.getText()+" ";
String job1=(String)job.getSelectedItem();
String str="我是"+name+"\n性别:"+sex+"\n爱好:"+hobby+"\n未来职业:"+job1;
JOptionPane.showMessageDialog(this,str);
}
else if(e.getSource()==jb2) {
System.exit(0);
}
}
}
需要解决的问题:
(1)两个按钮绑定同一个监听器,如何判断用户单击了哪个按钮?
- 通过getSource()方法获取监听的源按钮是哪一个,从而判断用户按了哪一个按钮。
(2)如何判断单选按钮、复选框的选中状态及标题文本的获取?
- 单选按钮:通过按钮组的getSelection()方法获取到选择的按钮,再通过getActionCommand()获取按钮信息,从而获得选中状态。
- 复选框:对复选框中每一项用isSelected()方法判断是否被选取,即可获得选中状态。
- 标题文本:通过文本框的getText()方法获取标题文本信息。
(3)如何退出Java程序?
- 点击退出按钮(System.exit(0)😉,或者点击右上角×按钮。
在学霸的帮助下完成了本次任务,唉~觉得自己好菜啊!o(╥﹏╥)o,还好有CSDN,有同学,还是要继续加油!
小白句子分享 :
- “你向一个方向走了很多年,山重水复,什么障碍都越过,却可能在平原轻易迷失自己。”——林达《一路走来一路读》
- “沉默会自我繁衍。越长时间不说话,就越难找到可说的话题。同理,事情搁置的时间越长,就难以讨论。”——伊维塔·泽鲁巴维尔《房间里的大象》
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献8条内容
所有评论(0)