📄 propertieslookplugins.java
字号:
GUIUtilities.displayExceptionErrorDialog(sb.toString(), ioExc); return; } finally { GUIUtilities.showNormalCursor(); } if (looks == null || looks.length == 0) { GUIUtilities.displayWarningMessage( "No valid classes of type javax.swing.LookAndFeel\n"+ "were found in the specified resource"); return; } int result = -1; String value = null; while (true) { SimpleValueSelectionDialog dialog = new SimpleValueSelectionDialog("Select Look and Feel", looks); result = dialog.showDialog(); if (result == JOptionPane.OK_OPTION) { value = dialog.getValue(); if (value == null) { GUIUtilities.displayErrorMessage( "You must select a look and feel from the list"); } else { classField.setText(value); break; } } else { break; } } LookAndFeelDefinition lfd = (LookAndFeelDefinition) lfdv.elementAt(list.getSelectedIndex()); lfd.setClassName(value); } private void skinCheckedAction() { enableSkinFields(skinCheck.isSelected()); keyReleased(null); } private void installedCheckedAction() { int index = list.getSelectedIndex(); int v_size = lfdv.size(); LookAndFeelDefinition lfd; boolean check = installedCheck.isSelected(); for (int i = 0; i < v_size; i++) { lfd = (LookAndFeelDefinition)lfdv.elementAt(i); if (i == index) lfd.setInstalled(check); else lfd.setInstalled(!check); } } private void addNewLookAndFeel() { enableAllFields(true); list.removeListSelectionListener(this); LookAndFeelDefinition lfd = new LookAndFeelDefinition("New Look and Feel Plugin"); lfdv.add(lfd); list.setListData(lfdv); list.setSelectedValue(lfd, true); valueChanged(null); list.addListSelectionListener(this); setFocusComponent(); } private void enableAllFields(boolean enable) { list.setEnabled(enable); enableField(nameField, nameLabel, enable); enableField(classField, classLabel, enable); enableField(libPathField, libLabel, enable); findClassButton.setEnabled(enable); libBrowseButton.setEnabled(enable); installedCheck.setEnabled(enable); skinCheck.setEnabled(enable); } private void enableField(JTextField field, JLabel label, boolean enable) { field.setText(Constants.EMPTY); field.setEnabled(enable); label.setEnabled(enable); field.setEnabled(enable); field.setOpaque(enable); } private String getSkinLibraryPath() { int index = list.getSelectedIndex(); int v_size = lfdv.size(); LookAndFeelDefinition lfd; String path = null; for (int i = 0; i < v_size; i++) { lfd = (LookAndFeelDefinition)lfdv.elementAt(i); if (i == index) continue; if (lfd.isSkinLookAndFeel()) { path = lfd.getLibraryPath(); break; } } if (path != null && path.length() > 0) return path; else return Constants.EMPTY; } private void deleteLookAndFeel() { int v_size = lfdv.size(); if (v_size == 0) { return; } int yesNo = GUIUtilities.displayConfirmCancelDialog( "Are you sure you want to delete the selected look and feel plugin?"); if (yesNo != JOptionPane.YES_OPTION) { return; } int position = list.getSelectedIndex(); lfdv.removeElementAt(position); list.removeListSelectionListener(this); list.setListData(lfdv); list.addListSelectionListener(this); v_size = lfdv.size(); if (v_size != 0) { if (position == v_size) list.setSelectedIndex(position - 1); else list.setSelectedIndex(position); } else { enableAllFields(false); enableSkinFields(false); } } public void keyPressed(KeyEvent e) {} public void keyTyped(KeyEvent e) {} public void keyReleased(KeyEvent e) { LookAndFeelDefinition lfd = (LookAndFeelDefinition) lfdv.elementAt(list.getSelectedIndex()); if (e == null) { lfd.setIsSkinLookAndFeel(skinCheck.isSelected() ? 1 : 0); return; } Object obj = e.getSource(); if (obj == nameField) lfd.setName(nameField.getText()); else if (obj == classField) lfd.setClassName(classField.getText()); else if (obj == libPathField) lfd.setLibraryPath(libPathField.getText()); else if (obj == themeField) lfd.setThemePack(themeField.getText()); } public void focusGained(FocusEvent e) {} public void focusLost(FocusEvent e) { list.removeListSelectionListener(this); int position = list.getSelectedIndex(); if(lfdv.size() == 0) return; LookAndFeelDefinition lfd = (LookAndFeelDefinition)lfdv.elementAt(position); lfd.setName(nameField.getText()); lfdv.setElementAt(lfd, position); list.setListData(lfdv); list.setSelectedIndex(position); list.addListSelectionListener(this); } public void valueChanged(ListSelectionEvent e) { int index = list.getSelectedIndex(); if (index == -1 || lfdv.size() == 0) return; LookAndFeelDefinition lfd = (LookAndFeelDefinition)lfdv.elementAt(index); skinCheck.removeActionListener(this); boolean isSkin = lfd.isSkinLookAndFeel(); skinCheck.setSelected(isSkin); enableSkinFields(isSkin); nameField.setText(lfd.getName()); libPathField.setText(lfd.getLibraryPath()); classField.setText(lfd.getClassName()); themeField.setText(lfd.getThemePack()); installedCheck.setSelected(lfd.isInstalled()); libPathField.setCaretPosition(0); classField.setCaretPosition(0); themeField.setCaretPosition(0); skinCheck.addActionListener(this); setFocusComponent(); } public void setFocusComponent() { SwingUtilities.invokeLater(new Runnable() { public void run() { nameField.requestFocus(); nameField.selectAll(); } }); } private void enableSkinFields(boolean enable) { themeField.setEnabled(enable); themeLabel.setEnabled(enable); themeBrowseButton.setEnabled(enable); themeField.setOpaque(enable); if (enable) { String clazz = "com.l2fprod.gui.plaf.skin.SkinLookAndFeel"; String path = getSkinLibraryPath(); classField.setText(clazz); libPathField.setText(path); libPathField.setCaretPosition(0); classField.setCaretPosition(0); LookAndFeelDefinition lfd = (LookAndFeelDefinition) lfdv.elementAt(list.getSelectedIndex()); lfd.setClassName(clazz); lfd.setLibraryPath(path); } } private void browseButton_actionPerformed(Object obj) { FileSelector fs = null; JTextField field = null; boolean isTheme = false; if (obj == themeBrowseButton) { fs = new FileSelector(new String[] {"zip"}, "ZIP Archive Files"); field = themeField; isTheme = true; } else { fs = new FileSelector(new String[] {"jar"}, "Java Archive Files"); field = libPathField; } FileChooserDialog fileChooser = new FileChooserDialog(); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); fileChooser.setMultiSelectionEnabled(true); fileChooser.setFileFilter(fs); fileChooser.setDialogTitle("Select Look & Feel Plugin Library..."); fileChooser.setDialogType(JFileChooser.OPEN_DIALOG); int result = fileChooser.showDialog(GUIUtilities.getParentFrame(), "Select"); if (result == JFileChooser.CANCEL_OPTION) return; File[] files = fileChooser.getSelectedFiles(); char COLON = ';'; StringBuffer sb = new StringBuffer(); for (int i = 0; i < files.length; i++) { sb.append(files[i].getAbsolutePath()); if (i != files.length - 1) sb.append(COLON); } files = null; String path = sb.toString(); field.setText(path); sb = null; field.setCaretPosition(0); LookAndFeelDefinition lfd = (LookAndFeelDefinition) lfdv.elementAt(list.getSelectedIndex()); if (isTheme) lfd.setThemePack(path); else lfd.setLibraryPath(path); } public void save() { int v_size = lfdv.size(); LookAndFeelDefinition[] lfda = new LookAndFeelDefinition[v_size]; for (int i = 0; i < v_size; i++) { lfda[i] = (LookAndFeelDefinition)lfdv.elementAt(i); } LookAndFeelProperties.saveLookAndFeels(lfda); } public void restoreDefaults() {} }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -