checkandradiodemo.java

来自「Java 程序设计源码 只提供了部分」· Java 代码 · 共 134 行

JAVA
134
字号
import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import javax.swing.JFrame;import javax.swing.JCheckBox;import javax.swing.JTextField;import javax.swing.JRadioButton;import javax.swing.ButtonGroup;import javax.swing.JPanel;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Component;import java.awt.Font;import java.awt.Color;public class CheckAndRadioDemo extends JFrame    implements ActionListener {  private JTextField textDemo;  private JCheckBox ckbBold, ckbItalic;  private JRadioButton rdbRed, rdbGreen, rdbBlack;  private ButtonGroup btg;  private JPanel checkPanel, radioPanel;  private Container container;  private GridBagLayout layout;  private GridBagConstraints constraints;  public CheckAndRadioDemo() {    super("Text Processor");    setSize(260,200);    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    container = this.getContentPane();  }  private void addComponent(JPanel panel, GridBagLayout layout, GridBagConstraints                            gbc, Component com, int row, int column, int numRows,                            int numColumns, int Weightx, int Weighty) {    gbc.gridx = row;    gbc.gridy = column;    gbc.gridwidth = numRows;    gbc.gridheight = numColumns;    gbc.weightx = Weightx;    gbc.weighty = Weighty;    layout.setConstraints(com, gbc);    container.add(com);  }  public void setLayout() {    checkPanel = new JPanel();    checkPanel.setLayout(new GridLayout(2, 1));    ckbBold = new JCheckBox("Bold");    ckbBold.addActionListener(this);    ckbItalic = new JCheckBox("Italic");    ckbItalic.addActionListener(this);    checkPanel.add(ckbBold);    checkPanel.add(ckbItalic);    radioPanel = new JPanel();    radioPanel.setLayout(new GridLayout(3, 1));    rdbRed = new JRadioButton("Red");    rdbRed.addActionListener(this);    rdbGreen = new JRadioButton("Green");    rdbGreen.addActionListener(this);    rdbBlack = new JRadioButton("Black");    rdbBlack.addActionListener(this);    rdbBlack.setSelected(true);    btg = new ButtonGroup();    btg.add(rdbRed);    btg.add(rdbGreen);    btg.add(rdbBlack);    //这里可否将 btg 加入radioPanel 就可以了?    radioPanel.add(rdbRed);    radioPanel.add(rdbGreen);    radioPanel.add(rdbBlack);    layout = new GridBagLayout();    container.setLayout(layout);    constraints = new GridBagConstraints();    constraints.anchor = GridBagConstraints.CENTER;    textDemo = new JTextField("示例文字");    constraints.fill = GridBagConstraints.HORIZONTAL;    addComponent((JPanel)container, layout, constraints, textDemo, 0, 0, 2, 1, 100, 30);    constraints.fill = GridBagConstraints.BOTH;    addComponent((JPanel)container, layout, constraints, checkPanel, 0, 1, 1, 1, 50, 70);    constraints.fill = GridBagConstraints.BOTH;    addComponent((JPanel)container, layout, constraints, radioPanel, 1, 1, 1, 1, 50, 70);  }  public static void main(String[] args) {    CheckAndRadioDemo card = new CheckAndRadioDemo();    card.setSize(260,200);    card.setLayout();    card.setVisible(true);  }  public void actionPerformed(ActionEvent e) {    int intBold = 0;    int intItalic = 0;    if(e.getSource() instanceof JCheckBox) {      intBold = (ckbBold.isSelected() ? Font.BOLD : Font.PLAIN);      intItalic = (ckbItalic.isSelected() ? Font.ITALIC : Font.PLAIN);      textDemo.setFont(new Font("Serif", intBold + intItalic, 12));    }    if(e.getSource() instanceof JRadioButton) {      if(rdbBlack.isSelected()){        textDemo.setForeground(Color.black);      }      else if(rdbRed.isSelected()) {        textDemo.setForeground(Color.red);      }      else if(rdbGreen.isSelected()) {        textDemo.setForeground(Color.green);    }    }  } }

⌨️ 快捷键说明

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