swingset2.java
来自「一个小公司要求给写的很简单的任务管理系统。」· Java 代码 · 共 1,408 行 · 第 1/4 页
JAVA
1,408 行
lafMenu.getAccessibleContext().setAccessibleDescription( getString("LafMenu.laf_accessible_description")); mi = createLafMenuItem(lafMenu, "LafMenu.java_label", "LafMenu.java_mnemonic", "LafMenu.java_accessible_description", metal); mi.setSelected(true); // this is the default l&f UIManager.LookAndFeelInfo[] lafInfo = UIManager. getInstalledLookAndFeels(); for (int counter = 0; counter < lafInfo.length; counter++) { String className = lafInfo[counter].getClassName(); if (className == motif) { createLafMenuItem(lafMenu, "LafMenu.motif_label", "LafMenu.motif_mnemonic", "LafMenu.motif_accessible_description", motif); } else if (className == windows) { createLafMenuItem(lafMenu, "LafMenu.windows_label", "LafMenu.windows_mnemonic", "LafMenu.windows_accessible_description", windows); } else if (className == gtk) { createLafMenuItem(lafMenu, "LafMenu.gtk_label", "LafMenu.gtk_mnemonic", "LafMenu.gtk_accessible_description", gtk); } } // ***** create themes menu themesMenu = (JMenu) menuBar.add(new JMenu(getString("ThemesMenu.themes_label"))); themesMenu.setMnemonic(getMnemonic("ThemesMenu.themes_mnemonic")); themesMenu.getAccessibleContext().setAccessibleDescription( getString("ThemesMenu.themes_accessible_description")); // ***** create the audio submenu under the theme menu audioMenu = (JMenu) themesMenu.add(new JMenu(getString("AudioMenu.audio_label"))); audioMenu.setMnemonic(getMnemonic("AudioMenu.audio_mnemonic")); audioMenu.getAccessibleContext().setAccessibleDescription( getString("AudioMenu.audio_accessible_description")); createAudioMenuItem(audioMenu, "AudioMenu.on_label", "AudioMenu.on_mnemonic", "AudioMenu.on_accessible_description", new OnAudioAction(this)); mi = createAudioMenuItem(audioMenu, "AudioMenu.default_label", "AudioMenu.default_mnemonic", "AudioMenu.default_accessible_description", new DefaultAudioAction(this)); mi.setSelected(true); // This is the default feedback setting createAudioMenuItem(audioMenu, "AudioMenu.off_label", "AudioMenu.off_mnemonic", "AudioMenu.off_accessible_description", new OffAudioAction(this)); // ***** create the font submenu under the theme menu JMenu fontMenu = (JMenu) themesMenu.add(new JMenu(getString("FontMenu.fonts_label"))); fontMenu.setMnemonic(getMnemonic("FontMenu.fonts_mnemonic")); fontMenu.getAccessibleContext().setAccessibleDescription( getString("FontMenu.fonts_accessible_description")); ButtonGroup fontButtonGroup = new ButtonGroup(); mi = createButtonGroupMenuItem(fontMenu, "FontMenu.plain_label", "FontMenu.plain_mnemonic", "FontMenu.plain_accessible_description", new ChangeFontAction(this, true), fontButtonGroup); mi.setSelected(true); mi = createButtonGroupMenuItem(fontMenu, "FontMenu.bold_label", "FontMenu.bold_mnemonic", "FontMenu.bold_accessible_description", new ChangeFontAction(this, false), fontButtonGroup); // *** now back to adding color/font themes to the theme menu mi = createThemesMenuItem(themesMenu, "ThemesMenu.ocean_label", "ThemesMenu.ocean_mnemonic", "ThemesMenu.ocean_accessible_description", new OceanTheme()); mi.setSelected(true); // This is the default theme createThemesMenuItem(themesMenu, "ThemesMenu.steel_label", "ThemesMenu.steel_mnemonic", "ThemesMenu.steel_accessible_description", new DefaultMetalTheme()); createThemesMenuItem(themesMenu, "ThemesMenu.aqua_label", "ThemesMenu.aqua_mnemonic", "ThemesMenu.aqua_accessible_description", new AquaTheme()); createThemesMenuItem(themesMenu, "ThemesMenu.charcoal_label", "ThemesMenu.charcoal_mnemonic", "ThemesMenu.charcoal_accessible_description", new CharcoalTheme()); createThemesMenuItem(themesMenu, "ThemesMenu.contrast_label", "ThemesMenu.contrast_mnemonic", "ThemesMenu.contrast_accessible_description", new ContrastTheme()); createThemesMenuItem(themesMenu, "ThemesMenu.emerald_label", "ThemesMenu.emerald_mnemonic", "ThemesMenu.emerald_accessible_description", new EmeraldTheme()); createThemesMenuItem(themesMenu, "ThemesMenu.ruby_label", "ThemesMenu.ruby_mnemonic", "ThemesMenu.ruby_accessible_description", new RubyTheme()); // ***** create the options menu optionsMenu = (JMenu)menuBar.add( new JMenu(getString("OptionsMenu.options_label"))); optionsMenu.setMnemonic(getMnemonic("OptionsMenu.options_mnemonic")); optionsMenu.getAccessibleContext().setAccessibleDescription( getString("OptionsMenu.options_accessible_description")); // ***** create tool tip submenu item. mi = createCheckBoxMenuItem(optionsMenu, "OptionsMenu.tooltip_label", "OptionsMenu.tooltip_mnemonic", "OptionsMenu.tooltip_accessible_description", new ToolTipAction()); mi.setSelected(true); // ***** create drag support submenu item. createCheckBoxMenuItem(optionsMenu, "OptionsMenu.dragEnabled_label", "OptionsMenu.dragEnabled_mnemonic", "OptionsMenu.dragEnabled_accessible_description", new DragSupportAction()); } // ***** create the multiscreen menu, if we have multiple screens if (!isApplet()) { GraphicsDevice[] screens = GraphicsEnvironment. getLocalGraphicsEnvironment(). getScreenDevices(); if (screens.length > 1) { JMenu multiScreenMenu = (JMenu) menuBar.add(new JMenu( getString("MultiMenu.multi_label"))); multiScreenMenu.setMnemonic(getMnemonic("MultiMenu.multi_mnemonic")); multiScreenMenu.getAccessibleContext().setAccessibleDescription( getString("MultiMenu.multi_accessible_description")); createMultiscreenMenuItem(multiScreenMenu, MultiScreenAction.ALL_SCREENS); for (int i = 0; i < screens.length; i++) { createMultiscreenMenuItem(multiScreenMenu, i); } } } return menuBar; } /** * Create a checkbox menu menu item */ private JMenuItem createCheckBoxMenuItem(JMenu menu, String label, String mnemonic, String accessibleDescription, Action action) { JCheckBoxMenuItem mi = (JCheckBoxMenuItem)menu.add( new JCheckBoxMenuItem(getString(label))); mi.setMnemonic(getMnemonic(mnemonic)); mi.getAccessibleContext().setAccessibleDescription(getString( accessibleDescription)); mi.addActionListener(action); return mi; } /** * Create a radio button menu menu item for items that are part of a * button group. */ private JMenuItem createButtonGroupMenuItem(JMenu menu, String label, String mnemonic, String accessibleDescription, Action action, ButtonGroup buttonGroup) { JRadioButtonMenuItem mi = (JRadioButtonMenuItem)menu.add( new JRadioButtonMenuItem(getString(label))); buttonGroup.add(mi); mi.setMnemonic(getMnemonic(mnemonic)); mi.getAccessibleContext().setAccessibleDescription(getString( accessibleDescription)); mi.addActionListener(action); return mi; } /** * Create the theme's audio submenu */ public JMenuItem createAudioMenuItem(JMenu menu, String label, String mnemonic, String accessibleDescription, Action action) { JRadioButtonMenuItem mi = (JRadioButtonMenuItem) menu.add(new JRadioButtonMenuItem(getString(label))); audioMenuGroup.add(mi); mi.setMnemonic(getMnemonic(mnemonic)); mi.getAccessibleContext().setAccessibleDescription(getString(accessibleDescription)); mi.addActionListener(action); return mi; } /** * Creates a generic menu item */ public JMenuItem createMenuItem(JMenu menu, String label, String mnemonic, String accessibleDescription, Action action) { JMenuItem mi = (JMenuItem) menu.add(new JMenuItem(getString(label))); mi.setMnemonic(getMnemonic(mnemonic)); mi.getAccessibleContext().setAccessibleDescription(getString(accessibleDescription)); mi.addActionListener(action); if(action == null) { mi.setEnabled(false); } return mi; } /** * Creates a JRadioButtonMenuItem for the Themes menu */ public JMenuItem createThemesMenuItem(JMenu menu, String label, String mnemonic, String accessibleDescription, MetalTheme theme) { JRadioButtonMenuItem mi = (JRadioButtonMenuItem) menu.add(new JRadioButtonMenuItem(getString(label))); themesMenuGroup.add(mi); mi.setMnemonic(getMnemonic(mnemonic)); mi.getAccessibleContext().setAccessibleDescription(getString(accessibleDescription)); mi.addActionListener(new ChangeThemeAction(this, theme)); return mi; } /** * Creates a JRadioButtonMenuItem for the Look and Feel menu */ public JMenuItem createLafMenuItem(JMenu menu, String label, String mnemonic, String accessibleDescription, String laf) { JMenuItem mi = (JRadioButtonMenuItem) menu.add(new JRadioButtonMenuItem(getString(label))); lafMenuGroup.add(mi); mi.setMnemonic(getMnemonic(mnemonic)); mi.getAccessibleContext().setAccessibleDescription(getString(accessibleDescription)); mi.addActionListener(new ChangeLookAndFeelAction(this, laf)); mi.setEnabled(isAvailableLookAndFeel(laf)); return mi; } /** * Creates a multi-screen menu item */ public JMenuItem createMultiscreenMenuItem(JMenu menu, int screen) { JMenuItem mi = null; if (screen == MultiScreenAction.ALL_SCREENS) { mi = (JMenuItem) menu.add(new JMenuItem(getString("MultiMenu.all_label"))); mi.setMnemonic(getMnemonic("MultiMenu.all_mnemonic")); mi.getAccessibleContext().setAccessibleDescription(getString( "MultiMenu.all_accessible_description")); } else { mi = (JMenuItem) menu.add(new JMenuItem(getString("MultiMenu.single_label") + " " + screen)); mi.setMnemonic(KeyEvent.VK_0 + screen); mi.getAccessibleContext().setAccessibleDescription(getString( "MultiMenu.single_accessible_description") + " " + screen); } mi.addActionListener(new MultiScreenAction(this, screen)); return mi; } public JPopupMenu createPopupMenu() { JPopupMenu popup = new JPopupMenu("JPopupMenu demo"); createPopupMenuItem(popup, "LafMenu.java_label", "LafMenu.java_mnemonic", "LafMenu.java_accessible_description", metal); createPopupMenuItem(popup, "LafMenu.mac_label", "LafMenu.mac_mnemonic", "LafMenu.mac_accessible_description", mac); createPopupMenuItem(popup, "LafMenu.motif_label", "LafMenu.motif_mnemonic", "LafMenu.motif_accessible_description", motif); createPopupMenuItem(popup, "LafMenu.windows_label", "LafMenu.windows_mnemonic", "LafMenu.windows_accessible_description", windows); createPopupMenuItem(popup, "LafMenu.gtk_label", "LafMenu.gtk_mnemonic", "LafMenu.gtk_accessible_description", gtk); // register key binding to activate popup menu InputMap map = getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); map.put(KeyStroke.getKeyStroke(KeyEvent.VK_F10, InputEvent.SHIFT_MASK), "postMenuAction"); map.put(KeyStroke.getKeyStroke(KeyEvent.VK_CONTEXT_MENU, 0), "postMenuAction"); getActionMap().put("postMenuAction", new ActivatePopupMenuAction(this, popup)); return popup; } /** * Creates a JMenuItem for the Look and Feel popup menu */ public JMenuItem createPopupMenuItem(JPopupMenu menu, String label, String mnemonic, String accessibleDescription, String laf) { JMenuItem mi = menu.add(new JMenuItem(getString(label))); popupMenuGroup.add(mi); mi.setMnemonic(getMnemonic(mnemonic)); mi.getAccessibleContext().setAccessibleDescription(getString(accessibleDescription)); mi.addActionListener(new ChangeLookAndFeelAction(this, laf)); mi.setEnabled(isAvailableLookAndFeel(laf)); return mi; } /** * Load the first demo. This is done separately from the remaining demos * so that we can get SwingSet2 up and available to the user quickly. */ public void preloadFirstDemo() { DemoModule demo = addDemo(new InternalFrameDemo(this)); setDemo(demo); } /** * Add a demo to the toolbar */ public DemoModule addDemo(DemoModule demo) { demosList.add(demo); if (dragEnabled) { demo.updateDragEnabled(true); } // do the following on the gui thread SwingUtilities.invokeLater(new SwingSetRunnable(this, demo) { public void run() { SwitchToDemoAction action = new SwitchToDemoAction(swingset, (DemoModule) obj); JToggleButton tb = swingset.getToolBar().addToggleButton(action); swingset.getToolBarGroup().add(tb); if(swingset.getToolBarGroup().getSelection() == null) { tb.setSelected(true); } tb.setText(null); tb.setToolTipText(((DemoModule)obj).getToolTip()); if(demos[demos.length-1].equals(obj.getClass().getName())) { setStatus(getString("Status.popupMenuAccessible")); } } }); return demo; } /** * Sets the current demo */ public void setDemo(DemoModule demo) {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?