天天看點

啃透JDK源碼-JCheckBox詳解(下)API執行個體

API

  • AccessibleContext getAccessibleContext()

    擷取與此JCheckBox關聯的AccessibleContext。

  • 2

String getUIClassID()

傳回一個字元串,該字元串指定呈現此元件的L&F類的名稱。

3

boolean isBorderPaintedFlat()

擷取borderPaintedFlat屬性的值。

4

protected String paramString()

傳回此JCheckBox的字元串表示形式。

5

void setBorderPaintedFlat(boolean b)

設定borderPaintedFlat屬性,該屬性提供有關複選框邊框外觀的外觀提示。

6

void updateUI()

将UI屬性重置為目前外觀的值

執行個體

package com.company;

import java.util.ArrayList;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * @author JavaEdge
 */
public class JCheckBoxExample {
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;

    public JCheckBoxExample() {
        prepareGUI();
    }

    public static void main(String[] args) {
        JCheckBoxExample swingControlDemo = new JCheckBoxExample();
        swingControlDemo.showCheckBoxDemo();
    }

    private void prepareGUI() {
        mainFrame = new JFrame("JCheckBox執行個體");
        mainFrame.setSize(400, 400);
        mainFrame.setLayout(new GridLayout(3, 1));

        mainFrame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent windowEvent) {
                System.exit(0);
            }
        });
        headerLabel = new JLabel("", JLabel.CENTER);
        statusLabel = new JLabel("", JLabel.CENTER);
        statusLabel.setSize(350, 100);

        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());

        mainFrame.add(headerLabel);
        mainFrame.add(controlPanel);
        mainFrame.add(statusLabel);
        mainFrame.setVisible(true);
    }

    private void showCheckBoxDemo() {
        headerLabel.setText("Control in action: CheckBox");

        final JCheckBox chkApple = new JCheckBox("Java");
        final JCheckBox chkMango = new JCheckBox("Go");
        final JCheckBox chkPeer = new JCheckBox("資料庫");

        chkApple.setMnemonic(KeyEvent.VK_C);
        chkMango.setMnemonic(KeyEvent.VK_M);
        chkPeer.setMnemonic(KeyEvent.VK_P);

        chkApple.addItemListener(e -> statusLabel.setText("Java Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")));
        chkMango.addItemListener(e -> statusLabel.setText("Go Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")));
        chkPeer.addItemListener(e -> statusLabel.setText("資料庫 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")));
        controlPanel.add(chkApple);
        controlPanel.add(chkMango);
        controlPanel.add(chkPeer);

        mainFrame.setVisible(true);
    }
}
      

效果

啃透JDK源碼-JCheckBox詳解(下)API執行個體