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

📄 styleframe.java

📁 java swing 开发代码
💻 JAVA
字号:
// StyleFrame.java// A JTextPane with a menu for Style manipulation.package	jswing.ch22;import javax.swing.*;import javax.swing.text.*;import java.awt.*;import java.awt.event.*;public class StyleFrame extends JFrame implements ActionListener {  protected StyleBox styleBox;  protected JTextPane textPane;  protected JMenuBar menuBar;  protected JMenu applyStyleMenu, modifyStyleMenu;  protected JMenuItem createItem;  public StyleFrame() {    super("StyleFrame");    styleBox = new StyleBox();    textPane = new JTextPane();    getContentPane().add(new JScrollPane(textPane), BorderLayout.CENTER);    // set up menu    menuBar = new JMenuBar();    JMenu styleMenu = new JMenu("Style");    menuBar.add(styleMenu);    setJMenuBar(menuBar);    applyStyleMenu = new JMenu("Set Logical Style");    applyStyleMenu.setToolTipText(        "set the Logical Style for the paragraph at caret location");    styleMenu.add(applyStyleMenu);    modifyStyleMenu = new JMenu("Modify Style");    modifyStyleMenu.setToolTipText(        "redefine a named Style (will affect paragraphs using that style)");    styleMenu.add(modifyStyleMenu);    createItem = new JMenuItem("Create New Style");    createItem.setToolTipText(        "define a new Style (which can then be applied to paragraphs)");    createItem.addActionListener(this);    styleMenu.add(createItem);    // add the default style to applyStyleMenu and modifyStyleMenu    createMenuItems(StyleContext.DEFAULT_STYLE);  }  protected void createMenuItems(String styleName) {    // add 'styleName' to applyStyleMenu and modifyStyleMenu    JMenuItem applyItem = new JMenuItem(styleName);    applyItem.addActionListener(this);    applyStyleMenu.add(applyItem);    JMenuItem modifyItem = new JMenuItem(styleName);    modifyItem.addActionListener(this);    modifyStyleMenu.add(modifyItem);  }  public void actionPerformed(ActionEvent e) {    // determine which menuItem was invoked and process it    JMenuItem source = (JMenuItem)e.getSource();    if ( applyStyleMenu.isMenuComponent(source) ) {      // apply an existing style to the paragraph at the caret position      String styleName = source.getActionCommand();      Style style = textPane.getStyle(styleName);      textPane.setLogicalStyle(style);    }    if ( source == createItem ) {      // define a new Style and add it to the menus      styleBox.clear();      int response = JOptionPane.showConfirmDialog(this, styleBox,          "Style Editor", JOptionPane.OK_CANCEL_OPTION,          JOptionPane.PLAIN_MESSAGE);      if (response == JOptionPane.OK_OPTION &&          styleBox.getStyleName().length() > 0) {        String styleName = styleBox.getStyleName();        Style style = textPane.addStyle(styleName, null);        styleBox.fillStyle(style);        createMenuItems(styleName); // add new Style to the menus      }      }    if ( modifyStyleMenu.isMenuComponent(source) ) {      // redefine a Style (will automatically redraw paragraphs using Style)      String styleName = source.getActionCommand();      Style style = textPane.getStyle(styleName);      styleBox.loadFromStyle(style);      int response = JOptionPane.showConfirmDialog(this, styleBox,          "Style Editor", JOptionPane.OK_CANCEL_OPTION,          JOptionPane.PLAIN_MESSAGE);      if (response == JOptionPane.OK_OPTION) styleBox.fillStyle(style);    }  }  public static void main(String[] args) {    JFrame frame = new StyleFrame();    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    frame.setSize(400, 300);    frame.setVisible(true);  }}

⌨️ 快捷键说明

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