⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stylebox.java

📁 java swing 开发代码
💻 JAVA
字号:
// StyleBox.java// A control panel that can be used to edit a style's paragraph attributes.package	jswing.ch22;import javax.swing.*;import javax.swing.text.*;import java.awt.*;public class StyleBox extends JPanel {  private static final String[] fonts = {"Monospaced", "Serif", "SansSerif"};  private static final String[] sizes = {"8", "10", "12", "18", "24", "36"};  private JTextField nameField;  private JComboBox fontCombo, sizeCombo;  private JTextField leftField, rightField, aboveField, belowField;  private JCheckBox boldCheck, italicCheck;  public StyleBox() {    // create the fields and lay them out    super(new BorderLayout(4, 4));    JPanel labelPanel = new JPanel(new GridLayout(8, 1, 0, 2));    JPanel valuePanel = new JPanel(new GridLayout(8, 1, 0, 2));    add(labelPanel, BorderLayout.WEST);    add(valuePanel, BorderLayout.CENTER);    JLabel lab;    JPanel sidePanel;        lab = new JLabel("Style Name", SwingConstants.RIGHT);    labelPanel.add(lab);    nameField = new JTextField();    lab.setLabelFor(nameField);    valuePanel.add(nameField);    lab = new JLabel("Font", SwingConstants.RIGHT);    labelPanel.add(lab);    fontCombo = new JComboBox(fonts);    fontCombo.setEditable(true); // user may enter custom value    lab.setLabelFor(fontCombo);    valuePanel.add(fontCombo);    lab = new JLabel("Size", SwingConstants.RIGHT);    labelPanel.add(lab);    sizeCombo = new JComboBox(sizes);    sizeCombo.setEditable(true); // user may enter custom value    lab.setLabelFor(sizeCombo);    sidePanel = new JPanel(new BorderLayout(4, 0));    sidePanel.add(sizeCombo, BorderLayout.CENTER);    sidePanel.add(new JLabel("points"), BorderLayout.EAST);    valuePanel.add(sidePanel);    lab = new JLabel("Left Indent", SwingConstants.RIGHT);    labelPanel.add(lab);    leftField = new JTextField();    lab.setLabelFor(leftField);    sidePanel = new JPanel(new BorderLayout(4, 0));    sidePanel.add(leftField, BorderLayout.CENTER);    sidePanel.add(new JLabel("points"), BorderLayout.EAST);    valuePanel.add(sidePanel);    lab = new JLabel("Right Indent", SwingConstants.RIGHT);    labelPanel.add(lab);    rightField = new JTextField();    lab.setLabelFor(rightField);    sidePanel = new JPanel(new BorderLayout(4, 0));    sidePanel.add(rightField, BorderLayout.CENTER);    sidePanel.add(new JLabel("points"), BorderLayout.EAST);    valuePanel.add(sidePanel);    lab = new JLabel("Space Above", SwingConstants.RIGHT);    labelPanel.add(lab);    aboveField = new JTextField();    lab.setLabelFor(aboveField);    sidePanel = new JPanel(new BorderLayout(4, 0));    sidePanel.add(aboveField, BorderLayout.CENTER);    sidePanel.add(new JLabel("points"), BorderLayout.EAST);    valuePanel.add(sidePanel);    lab = new JLabel("Space Below", SwingConstants.RIGHT);    labelPanel.add(lab);    belowField = new JTextField();    lab.setLabelFor(belowField);    sidePanel = new JPanel(new BorderLayout(4, 0));    sidePanel.add(belowField, BorderLayout.CENTER);    sidePanel.add(new JLabel("points"), BorderLayout.EAST);    valuePanel.add(sidePanel);    boldCheck = new JCheckBox("Bold");    italicCheck = new JCheckBox("Italic");    sidePanel = new JPanel(new GridLayout(1, 2));    sidePanel.add(boldCheck);    sidePanel.add(italicCheck);    valuePanel.add(sidePanel);    clear(); // sets initial values, etc.  }  public void clear() {    // reset all fields (also sets nameField to be editable)    nameField.setText("");    nameField.setEditable(true);    fontCombo.setSelectedIndex(0);    sizeCombo.setSelectedIndex(2);    leftField.setText("0.0");    rightField.setText("0.0");    aboveField.setText("0.0");    belowField.setText("0.0");    boldCheck.setSelected(false);    italicCheck.setSelected(false);  }  public String getStyleName() {    // return the name of the style    String name = nameField.getText();    if (name.length() > 0)      return name;    else      return null;  }  public void fillStyle(Style style) {    // mutate 'style' with the values entered in the fields    // (no value checking--could throw NumberFormatException)    String font = (String)fontCombo.getSelectedItem();    StyleConstants.setFontFamily(style, font);    String size = (String)sizeCombo.getSelectedItem();    StyleConstants.setFontSize(style, Integer.parseInt(size));    String left = leftField.getText();    StyleConstants.setLeftIndent(style, Float.valueOf(left).floatValue());    String right = rightField.getText();    StyleConstants.setRightIndent(style, Float.valueOf(right).floatValue());    String above = aboveField.getText();    StyleConstants.setSpaceAbove(style, Float.valueOf(above).floatValue());    String below = belowField.getText();    StyleConstants.setSpaceBelow(style, Float.valueOf(below).floatValue());    boolean bold = boldCheck.isSelected();    StyleConstants.setBold(style, bold);    boolean italic = italicCheck.isSelected();    StyleConstants.setItalic(style, italic);  }  // Load the form from an existing Style.  public void loadFromStyle(Style style) {    nameField.setText(style.getName());    nameField.setEditable(false); // don't allow name change    String fam = StyleConstants.getFontFamily(style);    fontCombo.setSelectedItem(fam);    int size = StyleConstants.getFontSize(style);    sizeCombo.setSelectedItem(Integer.toString(size));    float left = StyleConstants.getLeftIndent(style);    leftField.setText(Float.toString(left));    float right = StyleConstants.getRightIndent(style);    rightField.setText(Float.toString(right));    float above = StyleConstants.getSpaceAbove(style);    aboveField.setText(Float.toString(above));    float below = StyleConstants.getSpaceBelow(style);    belowField.setText(Float.toString(below));    boolean bold = StyleConstants.isBold(style);    boldCheck.setSelected(bold);    boolean italic = StyleConstants.isItalic(style);    italicCheck.setSelected(italic);  }}

⌨️ 快捷键说明

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