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

📄 s20.htm

📁 Java2Swingt界面设计
💻 HTM
📖 第 1 页 / 共 5 页
字号:
              <br>              filename.substring(index+1) : <br>              filename;<br>              }<br>              public void explore(boolean force) {<br>              if(!isExplored() || force) {<br>              File file = getFile();<br>              File[] children = file.listFiles();</p>            <p> for(int i=0; i &lt; children.length; ++i) <br>              add(new FileNode(children[i]));</p>            <p> explored = true;<br>              }<br>              }<br>              }<br>              class FileNodeRenderer extends DefaultTreeCellRenderer {<br>              protected JCheckBox checkBox = new JCheckBox(&quot;backup&quot;);<br>              private Component strut = Box.createHorizontalStrut(5);<br>              private JPanel panel = new JPanel();</p>            <p> public FileNodeRenderer() {<br>              panel.setBackground(<br>              UIManager.getColor(&quot;Tree.textBackground&quot;));<br>              <br>              setOpaque(false);<br>              checkBox.setOpaque(false);<br>              panel.setOpaque(false);</p>            <p> panel.setLayout(new FlowLayout(FlowLayout.CENTER,0,0));<br>              panel.add(this);<br>              panel.add(strut);<br>              panel.add(checkBox);</p>            <p> } <br>              public Component getTreeCellRendererComponent(<br>              JTree tree, Object value, <br>              boolean selected, boolean expanded,<br>              boolean leaf, int row, <br>              boolean hasFocus) {<br>              FileNode node = (FileNode)value;<br>              String s = tree.convertValueToText(value, selected,<br>              expanded, leaf, row, hasFocus);</p>            <p> super.getTreeCellRendererComponent(<br>              tree, value, selected, expanded,<br>              leaf, row, hasFocus);</p>            <p> checkBox.setVisible(node.isDirectory());<br>              checkBox.setSelected(node.isSelected());</p>            <p> return panel;<br>              }<br>              }<br>              class GJApp extends WindowAdapter {<br>              static private JPanel statusArea = new JPanel();<br>              static private JLabel status = new JLabel(&quot; &quot;);</p>            <p> 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> statusArea.setBorder(BorderFactory.createEtchedBorder());<br>              statusArea.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));<br>              statusArea.add(status);<br>              status.setHorizontalAlignment(JLabel.LEFT);</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>              static public JPanel getStatusArea() {<br>              return statusArea;<br>              }<br>              static public void updateStatus(String s) {<br>              status.setText(s);<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例20-11 把用户对象设置为货币模式</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import javax.swing.tree.*;<br>            import java.awt.*;<br>            import java.awt.event.*;<br>            import java.text.*;            <p>public class Test extends JApplet {<br>              public void init() {<br>              JTree tree = new JTree();<br>              JScrollPane scrollPane = new JScrollPane(tree);</p>            <p> DefaultMutableTreeNode root = <br>              new DefaultMutableTreeNode(&quot;prices&quot;);</p>            <p> root.add(new DefaultMutableTreeNode(new Double(10.99)));<br>              root.add(new DefaultMutableTreeNode(new Double(8.99))); <br>              root.add(new DefaultMutableTreeNode(new Double(6.95))); <br>              root.add(new DefaultMutableTreeNode(new Double(8.00))); <br>              root.add(new DefaultMutableTreeNode(new Double(7.59))); <br>              root.add(new DefaultMutableTreeNode(new Double(2.49))); </p>            <p> DefaultTreeModel model = <br>              (DefaultTreeModel)tree.getModel();</p>            <p> model.setRoot(root);</p>            <p> tree.setCellRenderer(new FormattingRenderer());<br>              tree.setEditable(true);<br>              getContentPane().add(scrollPane);<br>              }<br>              }<br>              class FormattingRenderer extends DefaultTreeCellRenderer {<br>              public Component getTreeCellRendererComponent(<br>              JTree tree, Object value, <br>              boolean selected, boolean expanded,<br>              boolean leaf, int row, <br>              boolean hasFocus) {<br>              // initialize renderer component (this) ...</p>            <p> super.getTreeCellRendererComponent(<br>              tree, value, selected, expanded, <br>              leaf, row, hasFocus);</p>            <p> // now format label text ...</p>            <p> DefaultMutableTreeNode n = (DefaultMutableTreeNode)value;<br>              Object userObject = n.getUserObject();</p>            <p> if(userObject instanceof Double) { <br>              Double d = (Double)userObject;<br>              Format format = NumberFormat.getCurrencyInstance();</p>            <p> setText(value == null ? &quot;&quot; : format.format(d));<br>              }<br>              return this;<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 20.6.2 Metal界面样式</p>            <p>&nbsp;</p>            <p> 20.6.3 根结点和根句柄</p>            <p>&nbsp;</p>            <p align="center"><b>例20-12 显示根节点和根节点句柄</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;<br>            import java.util.*;            <p>public class Test extends JApplet {<br>              JTree tree = new JTree();<br>              public void init() {<br>              Container contentPane = getContentPane();<br>              JScrollPane scrollPane = new JScrollPane(tree);<br>              contentPane.add(new ControlPanel(), BorderLayout.NORTH);<br>              contentPane.add(scrollPane, BorderLayout.CENTER);<br>              }<br>              class ControlPanel extends JPanel{<br>              JCheckBox showRoot = new JCheckBox(&quot;show root node&quot;);<br>              JCheckBox showRootHandles = new JCheckBox(<br>              &quot;show root handle&quot;);<br>              public ControlPanel(){<br>              initializeCheckBoxes();<br>              setLayout(new FlowLayout());<br>              add(showRoot);<br>              add(showRootHandles);<br>              showRoot.addActionListener(new ActionListener(){<br>              public void actionPerformed(ActionEvent e){<br>              tree.setRootVisible(showRoot.isSelected());<br>              }<br>              });<br>              showRootHandles.addActionListener(<br>              new ActionListener(){<br>              public void actionPerformed(ActionEvent e){<br>              tree.setShowsRootHandles(<br>              showRootHandles.isSelected());<br>              }<br>              });<br>              }<br>              private void initializeCheckBoxes(){<br>              showRoot.setSelected(tree.isRootVisible());<br>              showRootHandles.setSelected(<br>              tree.getShowsRootHandles());<br>              }<br>              }<br>              }</p>            <p></p>            <hr size="1" noshade>            <p> 20.7 树单元编辑</p>            <p>&nbsp;</p>            <p align="center">&nbsp; </p>            <p> 20.7.1 扩展DefaultCellEditor</p>            <p>&nbsp;</p>            <p align="center"><b>例20-13 一个扩展DefaultCellEditor的编辑器</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import javax.swing.tree.*;<br>            import java.awt.*;<br>            import java.awt.event.*;<br>            import java.util.*;            <p>public class Test extends JApplet {<br>              public void init() {<br>              JTree tree = new JTree();<br>              JScrollPane scrollPane = new JScrollPane(tree);<br>              JComboBox combo = new JComboBox();</p>            <p> combo.addItem(&quot;red&quot;);<br>              combo.addItem(&quot;blue&quot;);<br>              combo.addItem(&quot;green&quot;);<br>              combo.addItem(&quot;orange&quot;);<br>              combo.addItem(&quot;yellow&quot;);<br>              combo.addItem(&quot;magenta&quot;);</p>            <p> tree.setCellEditor(new ColorEditor(tree, combo));<br>              tree.setEditable(true);</p>            <p> getContentPane().add(scrollPane);<br>              }<br>              }<br>              class ColorEditor extends DefaultCellEditor {<br>              private JTree tree;</p>            <p> public ColorEditor(JTree tree, JComboBox comboBox) {<br>              super(comboBox);<br>              this.tree = tree;<br>              }<br>              public boolean isCellEditable(EventObject e) {<br>              boolean rv = false; // return value</p>            <p> if(e instanceof MouseEvent) {<br>              MouseEvent me = (MouseEvent)e;</p>            <p> if(me.getClickCount() == 3) {<br>              TreePath path =<br>              tree.getPathForLocation(me.getX(), me.getY()); </p>            <p> if(path.getPathCount() == 1) // root node<br>              return false;</p>            <p> DefaultMutableTreeNode node = <br>              (DefaultMutableTreeNode)<br>              path.getLastPathComponent(); <br>              <br>              rv = node.getParent().toString().equals(&quot;colors&quot;);<br>              }<br>              }<br>              return rv;<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 20.7.2 DefaultTreeCellEditor</p>            <p>&nbsp;</p>            <p align="center"><b>例20-14 使用DefaultTreeCellEditor</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import javax.swing.tree.*;<br>            import java.awt.*;<br>            import java.awt.event.*;<br>

⌨️ 快捷键说明

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