?? optiondesigner.java
字號(hào):
package wapide;import java.awt.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.text.*;import javax.swing.text.html.*;import javax.swing.tree.*;import java.awt.event.*;import javax.swing.event.*;import java.util.*;/** * A dialog for designing "select" tags graphically. Provides * a small graphical representation of how the options and optiongroups might * display in a WAP Phone. * Copyright: Copyright (c) 2003 * @author Mark Busman * @version 1.0 * * For License and contact information see WAPIDE.java */public class OptionDesigner extends JDialog { private BorderLayout borderLayout1 = new BorderLayout(); private Border border1; private TitledBorder titledBorder1; private ImageIcon image1; private ImageIcon image2; private ImageIcon image3; private ImageIcon image4; private ImageIcon image5; private ImageIcon image6; private ImageIcon image7; private ImageIcon image8; private ImageIcon image9; private ImageIcon image10; private JSplitPane jSplitPane1 = new JSplitPane(); private JScrollPane jScrollPane1 = new JScrollPane(); private GridBagLayout gridBagLayout1 = new GridBagLayout(); private BorderLayout borderLayout3 = new BorderLayout(); private JTextPane PreviewPane = new JTextPane(); private JScrollPane PreviewScroller = new JScrollPane(); private JPanel PreviewPanel = new JPanel(); private JPanel jPanel3 = new JPanel(); private JButton downButton = new JButton(); private JPanel jPanel1 = new JPanel(); private JScrollPane jScrollPane2 = new JScrollPane(); private JButton upButton = new JButton(); private GridBagLayout gridBagLayout2 = new GridBagLayout(); private BorderLayout borderLayout2 = new BorderLayout(); private JPanel jPanel6 = new JPanel(); private JPanel jPanel5 = new JPanel(); private JTree OptionTree = new JTree(); private JPanel jPanel4 = new JPanel(); private JButton leftButton = new JButton(); private JPanel jPanel2 = new JPanel(); private JButton rightButton = new JButton(); private FlowLayout flowLayout1 = new FlowLayout(); private BorderLayout borderLayout4 = new BorderLayout(); private JButton NodePropertiesButton = new JButton(); private JPopupMenu TreePopupMenu = new JPopupMenu(); private JMenuItem jMenuCut = new JMenuItem(); private JMenuItem jMenuCopy = new JMenuItem(); private JMenuItem jMenuPaste = new JMenuItem(); private JMenuItem jMenuDelete = new JMenuItem(); private JMenuItem jMenuProperties = new JMenuItem(); // User variables /** * Path to the selected node. */ private TreePath path; /** * The tree model used by the JTree component. */ private DefaultTreeModel tm = null; /** * The colors used in in the graphics pane. */ private Color bkg, fg; /** * The Font used in the graphics pane. */ private Font f; /** * A temporary node. */ private DefaultMutableTreeNode TempNode; // Constants protected static int LEFT_MOUSE_BUTTON = 16; protected static int RIGHT_MOUSE_BUTTON = 4; /** * Empty constructor. */ public OptionDesigner() { } /** * Constructs a new OptionDesiner dialog. * @param Dimension size - the size of the graphics pane. * @param Color back - the background color of the graphics pane. * @param Color fore - the foreground color of the graphics pane. * @param Font font - default font of graphics pane. * @param Strin data - the WML text that makes up the content of the select tag. */ public OptionDesigner(Dimension size, Color back, Color fore, Font font, String data) { try { bkg = back; fg = fore; Font f = font; setTitle("Option Designer"); tm = new DefaultTreeModel(Build_Tree(data)); OptionTree = new JTree(tm); OptionTree.setCellRenderer(new OptionDialogTreeCellRenderer()); OptionTree.setRootVisible(false); jbInit(); pack(); //DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) OptionTree.getCellRenderer(); //renderer.setLeafIcon(image5); //renderer.setOpenIcon(image7); //renderer.setClosedIcon(image6); setSize(500, 350); JScrollBar CustomScrollBar = new JScrollBar(); CustomScrollBar.setMinimumSize(new Dimension(10, 5)); CustomScrollBar.setPreferredSize(new Dimension(10, 61)); PreviewScroller.setVerticalScrollBar(CustomScrollBar); //CustomScrollBar.setMinimumSize(new Dimension(10, 5)); //CustomScrollBar.setPreferredSize(new Dimension(10, 61)); //PreviewScroller.setVerticalScrollBar(CustomScrollBar); show(); PreviewScroller.setPreferredSize(size); PreviewPane.setPreferredSize(size); PreviewScroller.setSize(size); PreviewPane.setSize(size); PreviewPane.setFont(f); PreviewPane.setBackground(bkg); PreviewPane.setForeground(fg); PreviewPane.setStyledDocument(new DefaultStyledDocument()); PreviewPanel.setVisible(false); PreviewPanel.setVisible(true); setResizable(false); DefaultMutableTreeNode n = (DefaultMutableTreeNode) tm.getRoot(); if (n.getChildCount() > 0) { DefaultMutableTreeNode m =(DefaultMutableTreeNode) n.getChildAt(0); OptionTree.setSelectionPath(new TreePath(m.getPath())); updateSample(); } getData(); } catch(Exception e) { e.printStackTrace(); } } //public static void main(String[] args) { // OptionDesigner optionDesigner1 = new OptionDesigner(new Dimension(180, 80)); //} /** * Initializes the dialog and its controls. */ private void jbInit() throws Exception { border1 = BorderFactory.createEmptyBorder(); titledBorder1 = new TitledBorder(border1,"Preview"); image1 = new ImageIcon(wapide.IDEFrame.class.getResource("uarrow.gif")); image2 = new ImageIcon(wapide.IDEFrame.class.getResource("darrow.gif")); image3 = new ImageIcon(wapide.IDEFrame.class.getResource("larrow.gif")); image4 = new ImageIcon(wapide.IDEFrame.class.getResource("rarrow.gif")); image5 = new ImageIcon(wapide.IDEFrame.class.getResource("optionTag.gif")); image6 = new ImageIcon(wapide.IDEFrame.class.getResource("optgroupTag.gif")); image7 = new ImageIcon(wapide.IDEFrame.class.getResource("optgroupColorTag.gif")); image8 = new ImageIcon(wapide.IDEFrame.class.getResource("circle.gif")); image9 = new ImageIcon(wapide.IDEFrame.class.getResource("triangle.gif")); image10 = new ImageIcon(wapide.IDEFrame.class.getResource("filledcircle.gif")); this.getContentPane().setLayout(borderLayout1); PreviewScroller.setPreferredSize(new Dimension(89, 50)); PreviewScroller.setAutoscrolls(true); PreviewScroller.setNextFocusableComponent(jScrollPane2); PreviewPanel.setLayout(gridBagLayout1); PreviewPanel.setBorder(titledBorder1); PreviewPanel.setRequestFocusEnabled(false); jPanel3.setPreferredSize(new Dimension(300, 61)); jPanel3.setRequestFocusEnabled(false); jPanel3.setLayout(borderLayout3); downButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { moveItems_actionPerformed(e); } }); downButton.setIcon(image2); downButton.setActionCommand("down"); downButton.setNextFocusableComponent(leftButton); downButton.setPreferredSize(new Dimension(27, 27)); downButton.setToolTipText("Move item down"); jPanel1.setLayout(borderLayout2); upButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { moveItems_actionPerformed(e); } }); upButton.setIcon(image1); upButton.setActionCommand("up"); upButton.setNextFocusableComponent(downButton); upButton.setPreferredSize(new Dimension(27, 27)); upButton.setToolTipText("Move item up"); jPanel5.setLayout(gridBagLayout2); jPanel5.setPreferredSize(new Dimension(30, 37)); jPanel5.setRequestFocusEnabled(false); OptionTree.setNextFocusableComponent(NodePropertiesButton); OptionTree.setPreferredSize(new Dimension(123, 72)); OptionTree.setEditable(true); OptionTree.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { OptionTree_mouseClicked(e); } }); OptionTree.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { OptionTree_valueChanged(e); } }); tm.addTreeModelListener(new javax.swing.event.TreeModelListener() { public void treeNodesChanged(TreeModelEvent e) { tm_treeNodesChanged(e); } public void treeNodesInserted(TreeModelEvent e) { } public void treeNodesRemoved(TreeModelEvent e) { } public void treeStructureChanged(TreeModelEvent e) { } }); PreviewPane.setEditable(false); PreviewPane.setRequestFocusEnabled(false); leftButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { moveItems_actionPerformed(e); } }); leftButton.setIcon(image3); leftButton.setActionCommand("left"); leftButton.setNextFocusableComponent(rightButton); leftButton.setPreferredSize(new Dimension(27, 27)); leftButton.setToolTipText("Move item to the left"); jPanel2.setLayout(flowLayout1); jPanel2.setMinimumSize(new Dimension(105, 133)); jPanel2.setRequestFocusEnabled(false); rightButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { moveItems_actionPerformed(e); } }); rightButton.setIcon(image4); rightButton.setActionCommand("right"); rightButton.setNextFocusableComponent(PreviewScroller); rightButton.setPreferredSize(new Dimension(27, 27)); rightButton.setToolTipText("Move item to the right"); jPanel4.setLayout(borderLayout4); NodePropertiesButton.setNextFocusableComponent(upButton); NodePropertiesButton.setPreferredSize(new Dimension(27, 27)); NodePropertiesButton.setToolTipText("Display item properties"); NodePropertiesButton.setText("..."); NodePropertiesButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { NodePropertiesButton_actionPerformed(e); } }); jMenuCut.setText("Cut"); jMenuCut.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Popup_actionPerformed(e); } }); jMenuCopy.setText("Copy"); jMenuCopy.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Popup_actionPerformed(e); } }); jMenuPaste.setText("Paste"); jMenuPaste.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Popup_actionPerformed(e); } }); jMenuDelete.setText("Delete"); jMenuDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Popup_actionPerformed(e); } }); jMenuProperties.setText("Properties"); jMenuProperties.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Popup_actionPerformed(e); } }); jSplitPane1.setRequestFocusEnabled(false); jPanel6.setRequestFocusEnabled(false); jPanel1.setRequestFocusEnabled(false); jPanel4.setRequestFocusEnabled(false); jScrollPane2.setNextFocusableComponent(OptionTree); this.getContentPane().add(jSplitPane1, BorderLayout.CENTER); jSplitPane1.add(jPanel3, JSplitPane.RIGHT); jPanel3.add(jScrollPane1, BorderLayout.CENTER); jSplitPane1.add(jPanel1, JSplitPane.LEFT); jPanel1.add(jScrollPane2, BorderLayout.CENTER); jPanel1.add(jPanel5, BorderLayout.EAST); jPanel5.add(jPanel6, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), -39, 32)); jPanel6.add(upButton, null); jPanel6.add(downButton, null); jPanel1.add(jPanel4, BorderLayout.SOUTH); jPanel4.add(jPanel2, BorderLayout.CENTER); jPanel2.add(leftButton, null); jPanel2.add(rightButton, null); jPanel4.add(NodePropertiesButton, BorderLayout.EAST); jScrollPane2.getViewport().add(OptionTree, null); jScrollPane1.getViewport().add(PreviewPanel, null); PreviewPanel.add(PreviewScroller, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); PreviewScroller.getViewport().add(PreviewPane, null); TreePopupMenu.add(jMenuCut); TreePopupMenu.add(jMenuCopy); TreePopupMenu.add(jMenuPaste); TreePopupMenu.addSeparator(); TreePopupMenu.add(jMenuDelete); TreePopupMenu.addSeparator(); TreePopupMenu.add(jMenuProperties); jSplitPane1.setDividerLocation(150); } /** * Moves nodes up and down, left and right, adding and removing them from other nodes * and their parents. */ private void moveItems_actionPerformed(ActionEvent e) { JButton b = (JButton) e.getSource(); int cnt = path.getPathCount(); if (b.getActionCommand().equals("up")) { try { DefaultMutableTreeNode child = (DefaultMutableTreeNode) path.getPathComponent(cnt -1); DefaultMutableTreeNode parent = (DefaultMutableTreeNode) child.getParent(); int index = parent.getIndex(child); index--; if (index > -1) { tm.removeNodeFromParent(child); tm.insertNodeInto(child, parent, index); OptionTree.setSelectionPath(path); updateSample(); } } catch (NullPointerException nullerr) {} catch (ArrayIndexOutOfBoundsException arrerr) {} } if (b.getActionCommand().equals("down")) { try { DefaultMutableTreeNode child = (DefaultMutableTreeNode) path.getPathComponent(cnt -1); DefaultMutableTreeNode parent = (DefaultMutableTreeNode) child.getParent(); int index = parent.getIndex(child); index++; if (index < parent.getChildCount()) { tm.removeNodeFromParent(child); tm.insertNodeInto(child, parent, index); OptionTree.setSelectionPath(path); updateSample();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -