📄 demopanel.java
字号:
button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { innerSplit.setOneTouchExpandable(!innerSplit.isOneTouchExpandable()); split1.setOneTouchExpandable(!split1.isOneTouchExpandable()); } }); } } /** * Description of the Class * * @author fred * @created 27 avril 2002 */ static class InternalTest extends BasePanel { /** * Constructor for the InternalTest object */ InternalTest() { setLayout(new BorderLayout()); JDesktopPane desk = new JDesktopPane(); add("Center", new JScrollPane(desk)); desk.putClientProperty("JDesktopPane.backgroundEnabled", Boolean.TRUE); desk.putClientProperty("JDesktopPane.dragMode", "faster"); JInternalFrame frame = new JInternalFrame("A Frame (DO_NOTHING_ON_CLOSE)", true, true, true, true); frame.getContentPane().add(new JScrollPane(new JTree())); frame.setVisible(true); frame.setSize(200, 100); frame.setDefaultCloseOperation(JInternalFrame.DO_NOTHING_ON_CLOSE); frame.addVetoableChangeListener( new VetoableChangeListener() { public void vetoableChange(PropertyChangeEvent event) throws PropertyVetoException { if (event.getPropertyName().equals(JInternalFrame.IS_CLOSED_PROPERTY) && Boolean.TRUE.equals(event.getNewValue())) { JOptionPane.showMessageDialog((JInternalFrame) event.getSource(), "You can veto Frame Closing here!"); throw new PropertyVetoException("don't close!", event); } // end of if (event.getPropertyName().equals() } }); desk.add(frame); // // this frame has a workaround for a bug in Swing where setIconifiable does not fire any event // until JDK1.4 // final JInternalFrame frame2 = new JInternalFrame("An other Frame", true, true, true, true) { public void setIconifiable(boolean b) { if (OS.isOneDotFour()) { super.setIconifiable(b); } else { Boolean oldValue = isIconifiable() ? Boolean.TRUE : Boolean.FALSE; Boolean newValue = b ? Boolean.TRUE : Boolean.FALSE; super.setIconifiable(b); this.firePropertyChange("iconable", oldValue, newValue); } } }; frame2.getContentPane().setLayout(new GridLayout(3, 1)); JButton button = new JButton("Toggle closable"); button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { frame2.setClosable(!frame2.isClosable()); } }); frame2.getContentPane().add(button); button = new JButton("Toggle iconifiable"); button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { frame2.setIconifiable(!frame2.isIconifiable()); } }); frame2.getContentPane().add(button); frame2.setMaximizable(false); frame2.setVisible(true); frame2.setSize(200, 200); frame2.setLocation(50, 50); desk.add(frame2); JInternalFrame frame3 = new JInternalFrame("Not iconifiable", true, true, true, false); frame3.setIconifiable(false); frame3.setSize(200, 200); frame3.setLocation(75, 75); frame3.setVisible(true); desk.add(frame3); } } /** * Description of the Class * * @author fred * @created 27 avril 2002 */ static class TextTest extends BasePanel { /** * Constructor for the TextTest object */ TextTest() { setLayout(new VerticalLayout()); add(new JLabel("This is a testbed for the key bindinds")); add(new JLabel("JTextField:")); add(new JTextField("please try the key bindings")); add(new JLabel("JPasswordField:")); add(new JPasswordField()); JScrollPane scroll; add(new JLabel("JTextArea:")); add(scroll = new JScrollPane(new JTextArea("please try the key bindings\nthis is skin look and feel", 4, 50))); scroll.setPreferredSize(new Dimension(100, 60)); add(new JLabel("JTextPane:")); add(scroll = new JScrollPane(new JTextPane())); scroll.setPreferredSize(new Dimension(100, 60)); add(new JLabel("JEditorPane:")); add(scroll = new JScrollPane(new JEditorPane())); scroll.setPreferredSize(new Dimension(100, 60)); } } /** * Description of the Class * * @author fred * @created 27 avril 2002 */ static class TablePanel extends BasePanel { /** * Constructor for the TablePanel object */ TablePanel() { setLayout(new BorderLayout()); JTable table = new JTable( new AbstractTableModel() { public int getRowCount() { return 50000; } public int getColumnCount() { return 5; } public Object getValueAt(int row, int column) { if (column == 1) { return new Integer((int)(((double)100 * row) / getRowCount())); } else { return new Integer(row * column); } } }); add("Center", new JScrollPane(table)); table.getColumnModel().getColumn(1).setCellRenderer(new JProgressBarCellRenderer()); // here is an example of overriding the default table cellrenderer to provide a custom one while reusing // while reusing the skin tablecellrenderer final Icon arrowIcon = new Icon() { public int getIconWidth() { return 10; } public int getIconHeight() { return 10; } public void paintIcon(Component c, Graphics g, int x, int y) { Color oldColor = g.getColor(); g.setColor(Color.black); g.drawRect(x, y, 10, 10); g.setColor(oldColor); } }; TableCellRenderer headerRenderer = new TableCellRenderer() { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { DefaultTableCellRenderer c = (DefaultTableCellRenderer) SkinLookAndFeel.getSkin().getPersonality().createTableHeaderRenderer(); c.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (column == 0) { c.setForeground(Color.red); c.setIcon(arrowIcon); } else { c.setIcon(null); } return c; } }; Enumeration enumeration = table.getColumnModel().getColumns(); while (enumeration.hasMoreElements()) { TableColumn aColumn = (TableColumn) enumeration.nextElement(); aColumn.setHeaderRenderer(headerRenderer); } table.getTableHeader().setReorderingAllowed(false); } } /** * Description of the Class * * @author fred * @created 27 avril 2002 */ static class ComboList extends BasePanel { /** * Constructor for the ComboList object */ ComboList() { setLayout(new VerticalLayout()); add(new JLabel("Normal ComboBox:")); add(new JComboBox(new String[]{"1", "2", "4", "8"})); JComboBox disabled = new JComboBox(new String[]{"1", "2", "4", "8"}); disabled.setEnabled(false); add(new JLabel("Disabled ComboBox")); add(disabled); add(new JLabel("Editable ComboBox")); final JComboBox editable = new JComboBox(new String[]{"1", "2", "4", "8"}); // editable.setEditable(true); add(editable); JButton b = new JButton("Toggle Editable"); b.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { editable.setEditable(!editable.isEditable()); } }); add(b); class FontCellRenderer extends DefaultListCellRenderer { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { String fontName = ((Font)value).getFontName(); return super.getListCellRendererComponent(list, fontName, index, isSelected, cellHasFocus); } }; JComboBox fonts = new JComboBox(GraphicsEnvironment.getLocalGraphicsEnvironment(). getAllFonts()); FontCellRenderer render = new FontCellRenderer(); fonts.setOpaque(false); fonts.setRenderer(render); add(fonts); // JDK1.4 only try { add((JComponent) Class.forName("javax.swing.JSpinner").newInstance()); } catch (Exception e) { } } } static class ListPanel extends BasePanel { ListPanel() { setLayout(new BorderLayout()); ListModel model = new AbstractListModel() { public Object getElementAt(int index) { return new Integer((int)(((double)100 * index) / getSize())); } public int getSize() { return 10; } }; JList list = new JList(model); list.setCellRenderer(new ListComponentRenderer()); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setFixedCellWidth(272); list.setFixedCellHeight(21); JScrollPane listScrollPane = new JScrollPane(list); add("Center", listScrollPane); } } static class ListComponentRenderer extends BasePanel implements ListCellRenderer { JProgressBar progBar; public ListComponentRenderer() { // Configure this setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); setBorder( BorderFactory.createCompoundBorder( BorderFactory.createEtchedBorder(), BorderFactory.createEmptyBorder(2, 2, 2, 2))); setOpaque(true); // Configure progBar progBar = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); progBar.setBorder(BorderFactory.createRaisedBevelBorder()); progBar.setPreferredSize(new Dimension(100, 15)); progBar.setMinimumSize(new Dimension(100, 15)); progBar.setMaximumSize(new Dimension(100, 15)); progBar.setValue(0); add(new JLabel("Fixed Size Label")); add(progBar); } /** * Comply with ListCellRenderer Interface * @param list the JList doing the renderering * @param value object being rendered * @param index cell index * @param isSelected is selected * @param cellHasFocus cell has focus? * @return Component to render */ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { progBar.setValue(((Integer)value).intValue()); setBackground(isSelected ? Color.red : Color.white); setForeground(isSelected ? Color.white : Color.black); return this; } } static class JProgressBarCellRenderer extends JProgressBar implements TableCellRenderer { public JProgressBarCellRenderer() { super(); Dimension progressSize = new Dimension(50, 8); setMaximumSize(progressSize); setPreferredSize(progressSize); setMinimumSize(progressSize); } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { setBackground(list.getBackground()); handleValue(value); return this; } public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { setBackground(tree.getBackground()); handleValue(value); return this; } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { setBackground(table.getBackground()); handleValue(value); return this; } /** * Called by getListCellRendererComponent, getTreeCellRendererComponent, getTableCellRendererComponent to render the value. * The default implementation checks the type of value and sets the model or the value correctly. * * @param value an <code>Object</code> value */ protected void handleValue(Object value) { if (value instanceof BoundedRangeModel) { setModel((BoundedRangeModel)value); } else { setValue(((Integer)value).intValue()); } } } static class ChooserPanel extends BasePanel { public ChooserPanel() { setLayout(new GridLayout(3, 1)); JButton button = new JButton("Pick a Color"); add(button); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { JColorChooser.showDialog(null, "Pick a Color", null); } }); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -