Java Swing GUI 入門-Checkbox和Slider
阿新 • • 發佈:2020-12-21
java Swing GUI 入門-Checkbox和Slider
覺得有用的話,歡迎一起討論相互學習~
設計佈局
- 大部分和上一節: https://xuzhiwei.blog.csdn.net/article/details/111476522 的內容一致,新加入的內容有
- Radio Button
- Checkbox
- JSlider
新增事件操作
- 對於checkbox主要關注的是其狀態的變化,因此使用的是ChangeListener
professionalCheckBox.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { if (professionalCheckBox.isSelected()) { feeField.setText("$120"); } else { feeField.setText("$100"); } } });
* 對於radiobutton 一般情況下可以多選,為了避免多選的情況使用ButtonGroup,即新建一個ButtonGroup,並且將其他button繫結到這個ButtonGroup上.
- 對於slider,主要使用的是其範圍的變化,其中範圍可以根據maximum和minimum屬性進行修改,並且value可以設定初始的值.
- slider主要關注的是其狀態的變化,因此使用的是ChangeListener
slider1.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { int handicap = slider1.getValue(); handiLabel.setText("Your Handicap: " + handicap); } }); }//end constructor
程式演示
完整程式碼
import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class GolfTourneyManager { private JPanel mainPanel; private JPanel panel1; private JPanel panel2; private JPanel panel3; private JPanel panel4; private JPanel panel5; private JTextField textField1; private JCheckBox professionalCheckBox; private JRadioButton sandpiperRadioButton; private JRadioButton mayfairRadioButton; private JRadioButton blackHawkRadioButton; private JRadioButton theRanchRadioButton; private JTextField feeField; private JButton REGISTERButton; private JSlider slider1; private JLabel handiLabel; private JLabel logoLabel; private JButton registerNowButton; private JPanel TitleBarPanel; public GolfTourneyManager() { professionalCheckBox.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { if (professionalCheckBox.isSelected()) { feeField.setText("$120"); } else { feeField.setText("$100"); } } }); slider1.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { int handicap = slider1.getValue(); handiLabel.setText("Your Handicap: " + handicap); } }); }//end constructor public static void main(String[] args) { JFrame frame = new JFrame("Golf Tourney Manager"); frame.setContentPane(new GolfTourneyManager().mainPanel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } private void createUIComponents() { } }//end class