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

📄 s20.htm

📁 Java2Swingt界面设计
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            <p> add(addButton);<br>              add(removeButton);</p>            <p> addButton.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              TreePath path = <br>              selectionModel.getSelectionPath();</p>            <p> MutableTreeNode parent, node = <br>              (MutableTreeNode)path.getLastPathComponent();</p>            <p> if(path.getPathCount() &gt; 1)<br>              parent = (MutableTreeNode)node.getParent();<br>              else<br>              parent = (MutableTreeNode)node;</p>            <p> int index = parent.getIndex(node) + 1;</p>            <p> String s = JOptionPane.showInputDialog(<br>              Test.this,<br>              &quot;Enter a name for the new node:&quot;,<br>              &quot;New Tree Node&quot;,<br>              JOptionPane.QUESTION_MESSAGE);</p>            <p> MutableTreeNode newNode = <br>              new DefaultMutableTreeNode(s);</p>            <p> model.insertNodeInto(newNode, parent, index);<br>              }<br>              });<br>              removeButton.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              TreePath path = <br>              selectionModel.getSelectionPath();</p>            <p> if(path.getPathCount() == 1) {<br>              JOptionPane.showMessageDialog(ControlPanel.this,<br>              &quot;Can't remove root node!&quot;);<br>              return;<br>              }</p>            <p> MutableTreeNode node = <br>              (MutableTreeNode)path.getLastPathComponent();</p>            <p> model.removeNodeFromParent(node);<br>              }<br>              });<br>              }<br>              }<br>              public static void main(String args[]) {<br>              GraphicJavaApplication.launch(new Test(), <br>              &quot;Tree Model Example&quot;,300,300,450,300);<br>              }<br>              }<br>              class GraphicJavaApplication extends WindowAdapter {<br>              public static void launch(final JFrame f, String title,<br>              final int x, final int y, <br>              final int w, int h) {<br>              f.setTitle(title);<br>              f.setBounds(x,y,w,h);<br>              f.setVisible(true);</p>            <p> f.setDefaultCloseOperation(<br>              WindowConstants.DISPOSE_ON_CLOSE);</p>            <p> f.addWindowListener(new WindowAdapter() {<br>              public void windowClosed(WindowEvent e) {<br>              System.exit(0);<br>              }<br>              });<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 20.5 树选取</p>            <p align="center"><b>例20-7 树选取模式</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import javax.swing.tree.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JApplet {<br>              JTree tree = new JTree();</p>            <p> TreeSelectionModel selectionModel = tree.getSelectionModel();</p>            <p> String modes[] = {<br>              &quot;CONTIGUOUS_TREE_SELECTION&quot;,<br>              &quot;DISCONTIGUOUS_TREE_SELECTION&quot;,<br>              &quot;SINGLE_TREE_SELECTION&quot;<br>              };<br>              int modeIds[] = {<br>              TreeSelectionModel.CONTIGUOUS_TREE_SELECTION,<br>              TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION,<br>              TreeSelectionModel.SINGLE_TREE_SELECTION,<br>              };</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> contentPane.add(new ControlPanel(), BorderLayout.NORTH);<br>              contentPane.add(new JScrollPane(tree), <br>              BorderLayout.CENTER);<br>              }<br>              class ControlPanel extends JPanel {<br>              JComboBox combo = new JComboBox();<br>              JButton button = new JButton(&quot;clear selection&quot;);</p>            <p> public ControlPanel() {<br>              for(int i=0; i &lt; modes.length; ++i) {<br>              combo.addItem(modes[i]);<br>              }<br>              add(new JLabel(&quot;Selection Mode:&quot;));<br>              add(combo);<br>              add(button);</p>            <p> int initialMode = selectionModel.getSelectionMode();</p>            <p> if(initialMode == modeIds[0])<br>              combo.setSelectedIndex(0);<br>              else if(initialMode == modeIds[1])<br>              combo.setSelectedIndex(1);<br>              else if(initialMode == modeIds[2])<br>              combo.setSelectedIndex(2);</p>            <p> combo.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              int index = combo.getSelectedIndex();<br>              selectionModel.setSelectionMode(<br>              modeIds[index]);<br>              }<br>              });<br>              button.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              selectionModel.clearSelection();<br>              }<br>              });<br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 20.6 树单元绘制</p>            <p>&nbsp;</p>            <p> 20.6.1 DefaultTreeCellRenderer</p>            <p>&nbsp;</p>            <p align="center"><b>例20-8 使用DefaultTreeCellRenderer</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import javax.swing.tree.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JApplet {<br>              static private Icon <br>              openFolder = new ImageIcon(&quot;button_lit.jpg&quot;),<br>              closedFolder = new ImageIcon(&quot;button.jpg&quot;),<br>              leafIcon = new ImageIcon(&quot;leaf.gif&quot;);</p>            <p> public void init() {<br>              JTree tree = new JTree();<br>              JScrollPane scrollPane = new JScrollPane(tree);<br>              DefaultTreeCellRenderer renderer = <br>              new DefaultTreeCellRenderer();</p>            <p> renderer.setClosedIcon(closedFolder);<br>              renderer.setOpenIcon(openFolder);<br>              renderer.setLeafIcon(leafIcon);<br>              renderer.setFont(new Font(&quot;Serif&quot;, Font.ITALIC, 12));</p>            <p> tree.setCellRenderer(renderer);<br>              tree.setEditable(true);<br>              getContentPane().add(scrollPane);<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例20-9 用UIManager类设置树图标的缺省值</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import javax.swing.tree.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JApplet {<br>              static private Icon <br>              openFolder = new ImageIcon(&quot;button_lit.jpg&quot;),<br>              closedFolder = new ImageIcon(&quot;button.jpg&quot;),<br>              leafIcon = new ImageIcon(&quot;leaf.gif&quot;);</p>            <p> public void init() {<br>              UIManager.put(&quot;Tree.closedIcon&quot;, closedFolder);<br>              UIManager.put(&quot;Tree.openIcon&quot;, openFolder);<br>              UIManager.put(&quot;Tree.leafIcon&quot;, leafIcon);</p>            <p> JTree tree = new JTree();<br>              JScrollPane scrollPane = new JScrollPane(tree);</p>            <p> getContentPane().add(scrollPane);<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例20-10 扩展DefalutTreeCellRenderer</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;<br>            import javax.swing.event.*;<br>            import javax.swing.tree.*;<br>            import java.io.File;            <p>public class Test extends JFrame {<br>              public Test() {<br>              final JTree tree = new JTree(createTreeModel());<br>              JScrollPane scrollPane = new JScrollPane(tree);<br>              FileNodeRenderer renderer = new FileNodeRenderer();</p>            <p> tree.setEditable(true);<br>              tree.setCellRenderer(renderer);</p>            <p> getContentPane().add(scrollPane, BorderLayout.CENTER);</p>            <p> tree.addTreeExpansionListener(new TreeExpansionListener(){<br>              public void treeCollapsed(TreeExpansionEvent e) {<br>              }<br>              public void treeExpanded(TreeExpansionEvent e) {<br>              TreePath path = e.getPath();<br>              FileNode node = (FileNode)<br>              path.getLastPathComponent();</p>            <p> if( ! node.isExplored()) {<br>              DefaultTreeModel model = <br>              (DefaultTreeModel)tree.getModel();</p>            <p> node.explore();<br>              model.nodeStructureChanged(node);<br>              }<br>              }<br>              });<br>              }<br>              private DefaultTreeModel createTreeModel() {<br>              File root = new File(&quot;E:/&quot;);<br>              FileNode rootNode = new FileNode(root), node;</p>            <p> rootNode.explore();<br>              return new DefaultTreeModel(rootNode);<br>              }<br>              public static void main(String args[]) {<br>              GJApp.launch(new Test(),&quot;JTree File Explorer&quot;,<br>              300,300,450,400);<br>              }<br>              }<br>              class FileNode extends DefaultMutableTreeNode {<br>              private boolean explored = false, selected = false;</p>            <p> public FileNode(File file) { <br>              setUserObject(file); <br>              }<br>              public boolean getAllowsChildren() { return isDirectory(); }<br>              public boolean isLeaf() { return !isDirectory(); }<br>              public File getFile() { return (File)getUserObject(); }</p>            <p> public void explore() { explore(false); }<br>              public boolean isExplored() { return explored; }</p>            <p> public void setSelected(boolean s) { selected = s; }<br>              public boolean isSelected() { return selected; }</p>            <p> public boolean isDirectory() {<br>              File file = (File)getUserObject();<br>              return file.isDirectory();<br>              }<br>              public String toString() {<br>              File file = (File)getUserObject();<br>              String filename = file.toString();<br>              int index = filename.lastIndexOf(&quot;\\&quot;);</p>            <p> return (index != -1 &amp;&amp; index != filename.length()-1) ? 

⌨️ 快捷键说明

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