1. 程式人生 > 實用技巧 >Java Swing GUI 入門-Checkbox和Slider

Java Swing GUI 入門-Checkbox和Slider

java Swing GUI 入門-Checkbox和Slider

覺得有用的話,歡迎一起討論相互學習~

設計佈局

  1. Radio Button
  2. Checkbox
  3. 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