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 + -
显示快捷键?