// create and position GUI components; register event handlers private void createUserInterface() { // get content pane for attaching GUI components Container contentPane = getContentPane(); // enable explicit positioning of GUI components contentPane.setLayout(null); // set up principalJLabel principalJLabel = new JLabel(); principalJLabel.setBounds(16, 16, 56, 24); principalJLabel.setText("Principal:"); contentPane.add(principalJLabel); // set up principalJTextField principalJTextField = new JTextField(); principalJTextField.setBounds(100, 16, 100, 24); principalJTextField.setHorizontalAlignment(JTextField.RIGHT); contentPane.add(principalJTextField); // set up interestRateJLabel interestRateJLabel = new JLabel(); interestRateJLabel.setBounds(16, 56, 80, 24); interestRateJLabel.setText("Interest rate:"); contentPane.add(interestRateJLabel); // set up interestRateJTextField interestRateJTextField = new JTextField(); interestRateJTextField.setBounds(100, 56, 100, 24); interestRateJTextField.setHorizontalAlignment(JTextField.RIGHT); contentPane.add(interestRateJTextField); // set up yearsJLabel yearsJLabel = new JLabel(); yearsJLabel.setBounds(16, 96, 48, 24); yearsJLabel.setText("Years:"); contentPane.add(yearsJLabel); // set up yearsJSpinner yearsJSpinner = new JSpinner(new SpinnerNumberModel(1, 1, 10, 1)); yearsJSpinner.setBounds(100, 96, 100, 24); contentPane.add(yearsJSpinner); // set up yearlyBalanceJLabel yearlyBalanceJLabel = new JLabel(); yearlyBalanceJLabel.setBounds(16, 136, 150, 24); yearlyBalanceJLabel.setText("Yearly account balance:"); contentPane.add(yearlyBalanceJLabel); // set up yearlyBalanceJTextArea yearlyBalanceJTextArea = new JTextArea(); yearlyBalanceJTextArea.setEditable(false); // set up yearlyBalanceJScrollPane yearlyBalanceJScrollPane = new JScrollPane(yearlyBalanceJTextArea); yearlyBalanceJScrollPane.setBounds(16, 160, 300, 92); contentPane.add(yearlyBalanceJScrollPane); // set up calculateJButton calculateJButton = new JButton(); calculateJButton.setBounds(216, 16, 100, 24); calculateJButton.setText("Calculate"); contentPane.add(calculateJButton); calculateJButton.addActionListener( new ActionListener() // anonymous inner class { // event handler called when calculateJButton is clicked public void actionPerformed(ActionEvent event) { calculateJButtonActionPerformed(event); } } // end anonymous inner class ); // end call to addActionListener // set properties of application's window setTitle("Interest Calculator"); // set title bar text setSize(340, 296); // set window size setVisible(true); // display window } // end method createUserInterface
InputFrame() { JPanel pane = new JPanel(); pane.setLayout(null); pane.setBackground(Color.LIGHT_GRAY); add(pane); // JTextField文字欄位元件 lblName = new JLabel("姓名:"); lblName.setBounds(10, 10, 40, 20); pane.add(lblName); text0.setBounds(50, 10, 80, 20); text0.addActionListener(textfield); pane.add(text0); // JSpinner數位序列元件 lblAge = new JLabel("年齡:"); lblAge.setBounds(170, 10, 40, 20); pane.add(lblAge); JSpinner spin = new JSpinner(new SpinnerNumberModel(20, 1, 100, 1)); spin.setBounds(210, 10, 80, 20); spin.addChangeListener(spinner); pane.add(spin); // JRadioButton選項圓鈕元件 lblSex = new JLabel("性別:"); lblSex.setBounds(10, 40, 40, 20); pane.add(lblSex); ButtonGroup group = new ButtonGroup(); JRadioButton rb1 = new JRadioButton("帥哥", false); rb1.setBounds(50, 40, 60, 20); JRadioButton rb2 = new JRadioButton("美女", false); rb2.setBounds(110, 40, 60, 20); rb1.setOpaque(false); rb2.setOpaque(false); // 秀出底色 rb1.addActionListener(radio); rb2.addActionListener(radio); group.add(rb1); group.add(rb2); pane.add(rb1); pane.add(rb2); // JCheckBox核對方塊元件 lblInter = new JLabel("興趣:"); lblInter.setBounds(10, 70, 50, 20); pane.add(lblInter); for (int i = 0; i < check.length; i++) { check[i] = new JCheckBox(checkItem[i]); check[i].setBounds(50 + 60 * i, 70, 60, 20); check[i].setOpaque(false); check[i].addActionListener(checkbox); pane.add(check[i]); } // JComboBox下拉式清單元件 lblAcad = new JLabel("學歷:"); lblAcad.setBounds(10, 100, 50, 20); pane.add(lblAcad); String[] items_c = {"博士", "碩士", "大學", "高中", "國中", "國小"}; JComboBox c_box = new JComboBox(items_c); c_box.setBounds(50, 100, 100, 20); c_box.addItemListener(cbo); pane.add(c_box); // JList清單元件 lblPlace = new JLabel("居住地區:"); lblPlace.setBounds(170, 100, 70, 20); pane.add(lblPlace); String[] items_p = { "台北", "桃園", "新竹", "苗栗", "台中", "彰化", "雲林", "嘉義", "台南", "高雄", "屏東", "花蓮", "台東", "澎湖" }; JList list = new JList(items_p); list.setVisibleRowCount(4); list.addListSelectionListener(list_p); JScrollPane scroll = new JScrollPane(list); scroll.setBounds(240, 100, 80, 80); pane.add(scroll); // JTextArea文字區域元件 texta.setBounds(10, 190, 330, 40); texta.setEditable(false); pane.add(texta); setTitle("輸入元件綜合應用"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(50, 50, 360, 280); setVisible(true); }