comptitledpaneexample3.java

来自「自制java的swing组件」· Java 代码 · 共 67 行

JAVA
67
字号
package zb.swing;

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

/**
 * @version 1.0 08/13/99
 */
public class CompTitledPaneExample3
    extends JFrame {

  public CompTitledPaneExample3() {
    super("CompTitledPaneExample3");

    Container c = getContentPane();
    c.setLayout(new GridLayout(2, 2));
    ButtonGroup group = new ButtonGroup();
    APanel p = new APanel(group, "Metal");
    c.add(p);
    c.add(new APanel(group, "Motif"));
    c.add(new APanel(group, "Mac"));
    c.add(new APanel(group, "Windows"));
    p.getRadioButton().setSelected(true);
  }

  class APanel
      extends CompTitledPane {
    JRadioButton titleComp;

    APanel(ButtonGroup group, final String text) {
      titleComp = new JRadioButton(text);
      final JButton button = new JButton(text);
      setTitleComponent(titleComp);
      this.titleComp = titleComp;
      group.add(titleComp);
      titleComp.setSelected(true);
      titleComp.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
          button.setEnabled(e.getStateChange() == ItemEvent.SELECTED);
        }
      });
      button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          System.out.println(text);
        }
      });
      getContentPane().add(button);
    }

    public JRadioButton getRadioButton() {
      return titleComp;
    }
  }

  public static void main(String args[]) {
    CompTitledPaneExample3 frame = new CompTitledPaneExample3();
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
    frame.setSize(280, 200);
    frame.setVisible(true);
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?