J2SE视频笔记(13)

J2SE视频笔记(13)

第三十七讲

Swing综合测试

  • 首先是第一个比较简单的小项目
  • 就是实现”x+y=?”的这个功能
  • 感觉从这个项目中真真切切学习到了监听器是怎样使用的
  • 以及一些布局方式的规范性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class SwingTest1 {
public static void main(String[] args) {
JFrame jfm=new JFrame("Swing综合测试");
jfm.setLayout(null); // 绝对布局方式
JTextField jxf1=new JTextField();
JTextField jxf2=new JTextField();
JLabel fuHao=new JLabel("+",JLabel.CENTER);
JTextField result=new JTextField();
JButton jb=new JButton("=");
// 为按钮加上事件监听
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 将两个文本的数字内容相加
String txt1=jxf1.getText();
int num1=Integer.parseInt(txt1);
String txt2=jxf2.getText();
int num2=Integer.parseInt(txt2);
int sum=num1+num2;
String asum=String.valueOf(sum);
result.setText(asum);
}
});
// 接下来就是要将这些组件在绝对布局上进行位置的放置
jxf1.setBounds(20, 30, 50, 25);
fuHao.setBounds(80, 30, 40, 25);
jxf2.setBounds(130, 30, 50, 25);
jb.setBounds(190, 30, 50, 25);
result.setBounds(250, 30, 50, 25);
jfm.add(jxf1);
jfm.add(fuHao);
jfm.add(jxf2);
jfm.add(jb);
jfm.add(result);
jfm.setLocation(400,200);
jfm.setSize(350,150);
jfm.setVisible(true);
jfm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
  • 然后再是第二个修进过的版本
  • 实现了JComboBox这个下拉框的功能(可以实现进行四则运算的选择,比如说加减乘除),然后可以将其加入到JPanel中
  • 具体变动不大,详细注释已经写在代码中了
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    public class SwingTest2 {
    public static void main(String[] args) {
    JFrame jfm=new JFrame("Swing综合测试");
    jfm.setLayout(null);
    JTextField jxf1=new JTextField();
    JTextField jxf2=new JTextField();
    // 利用JComBox实现下拉框
    String[] fuHao={"+","-","*","/"};
    // 将fuHao加入到下拉框JComboBox中,这样就可以实现四个符号出现在下拉框中了
    JComboBox jcb=new JComboBox(fuHao);
    JTextField result=new JTextField();
    JButton jb=new JButton("=");
    // 为按钮加上事件监听
    jb.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    // 将两个文本的数字内容相加
    String txt1=jxf1.getText();
    String txt2=jxf2.getText();
    //那么现在我们要从JComboBox中获取用户所选中的值了
    // 用getSelectedItem可以获得当前所选中的对象,它返回的是一个Object类型
    String fuhao=(String)jcb.getSelectedItem();
    if(fuhao.equals("+")){
    result.setText((Integer.parseInt(txt1)+Integer.parseInt(txt2))+"");
    }
    else if(fuhao.equals("-")){
    result.setText((Integer.parseInt(txt1)-Integer.parseInt(txt2))+"");
    }
    else if(fuhao.equals("*")){
    result.setText((Integer.parseInt(txt1)*Integer.parseInt(txt2))+"");
    }
    else if(fuhao.equals("/")){
    result.setText((Integer.parseInt(txt1)/Integer.parseInt(txt2))+"");
    }
    }
    });
    // 接下来就是要将这些组件在绝对布局上进行位置的放置
    jxf1.setBounds(20, 30, 50, 25);
    jcb.setBounds(80, 30, 40, 25);
    jxf2.setBounds(130, 30, 50, 25);
    jb.setBounds(190, 30, 50, 25);
    result.setBounds(250, 30, 50, 25);
    jfm.add(jxf1);
    jfm.add(jcb);
    jfm.add(jxf2);
    jfm.add(jb);
    jfm.add(result);
    jfm.setLocation(400,200);
    jfm.setSize(350,150);
    jfm.setVisible(true);
    jfm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }

热评文章