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

📄 s07.htm

📁 java图形设计卷2 swing
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            import java.util.*;            <p>public class Test extends JApplet {<br>              JDesktopPane desktopPane = new JDesktopPane();</p>            <p> JInternalFrame jif = new JInternalFrame(<br>              &quot;Internal Frame &quot;, // title<br>              true, // resizable<br>              true, // closable<br>              true, // maximizable<br>              true); // iconifiable</p>            <p> JScrollBar scrollbar = new JScrollBar();<br>              JSlider slider = new JSlider();<br>              JToolBar toolbar = new JToolBar();<br>              JTree tree = new JTree();</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p><br>              jif.setPreferredSize(new Dimension(550, 450));<br>              jif.getContentPane().setLayout(new FlowLayout());<br>              jif.getContentPane().add(new ComponentPanel());</p>            <p> desktopPane.setLayout(new FlowLayout());<br>              desktopPane.add(jif);</p>            <p> contentPane.add(new ControlPanel(), BorderLayout.NORTH);<br>              contentPane.add(desktopPane, BorderLayout.CENTER);</p>            <p> }<br>              class ComponentPanel extends JPanel {<br>              public ComponentPanel() {<br>              JPanel panel = new JPanel();</p>            <p> setLayout(new BorderLayout());<br>              add(toolbar, BorderLayout.NORTH);<br>              add(panel, BorderLayout.CENTER);</p>            <p> panel.add(scrollbar);<br>              panel.add(slider);<br>              panel.add(new JScrollPane(tree));</p>            <p> tree.setPreferredSize(new Dimension(200,100));</p>            <p> toolbar.add(new JButton(&quot;button&quot;));<br>              }<br>              }<br>              class ControlPanel extends JPanel {<br>              JCheckBox rollover = new JCheckBox(<br>              &quot;JToolBar.rollover&quot;);<br>              JCheckBox palette = new JCheckBox(<br>              &quot;JInternalFrame.palette&quot;);<br>              JCheckBox filled = new JCheckBox(<br>              &quot;JSlider.isFilled&quot;);<br>              JCheckBox freeStanding = new JCheckBox(<br>              &quot; JScrollBar.freeStanding&quot;);</p>            <p> JRadioButton none = new JRadioButton(&quot;none&quot;);<br>              JRadioButton horizontal = new JRadioButton(&quot;horizontal&quot;);<br>              JRadioButton angled = new JRadioButton(&quot;angled&quot;);</p>            <p> public ControlPanel() {<br>              ActionListener checkBoxListener = <br>              new CheckBoxListener();<br>              ActionListener radioButtonListener = <br>              new RadioButtonListener();</p>            <p> palette.addActionListener(checkBoxListener);<br>              filled.addActionListener(checkBoxListener);<br>              rollover.addActionListener(checkBoxListener);<br>              freeStanding.addActionListener(checkBoxListener);</p>            <p> none.addActionListener(radioButtonListener);<br>              horizontal.addActionListener(radioButtonListener);<br>              angled.addActionListener(radioButtonListener);</p>            <p> ButtonGroup group = new ButtonGroup();<br>              group.add(none);<br>              group.add(horizontal);<br>              group.add(filled);</p>            <p> none.setSelected(true);<br>              freeStanding.setSelected(true);<br>              <br>              add(palette);<br>              add(filled);<br>              add(rollover);<br>              add(freeStanding);<br>              add(Box.createHorizontalStrut(10));<br>              add(new JLabel(&quot;Tree: &quot;));<br>              add(none);<br>              add(horizontal);<br>              add(angled);<br>              }<br>              class RadioButtonListener implements ActionListener {<br>              public void actionPerformed(ActionEvent e) {<br>              JRadioButton rb = (JRadioButton)e.getSource();</p>            <p> if(rb == none) {<br>              tree.putClientProperty(<br>              &quot;JTree.lineStyle&quot;, &quot;None&quot;);<br>              }<br>              if(rb == horizontal) {<br>              tree.putClientProperty(<br>              &quot;JTree.lineStyle&quot;, &quot;Horizontal&quot;);<br>              }<br>              if(rb == angled) {<br>              tree.putClientProperty(<br>              &quot;JTree.lineStyle&quot;, &quot;Angled&quot;);<br>              }<br>              tree.repaint();<br>              }<br>              }<br>              class CheckBoxListener implements ActionListener {<br>              public void actionPerformed(ActionEvent e) {<br>              JCheckBox cb = (JCheckBox)e.getSource();</p>            <p> if(cb == palette) {<br>              palette.putClientProperty(<br>              &quot;JInternalFrame.isPalette&quot;, <br>              new Boolean(cb.isSelected()));</p>            <p> jif.revalidate();<br>              }<br>              else if(cb == filled) {<br>              slider.putClientProperty(<br>              &quot;JSlider.isFilled&quot;, <br>              new Boolean(cb.isSelected()));</p>            <p> slider.repaint();<br>              }<br>              else if(cb == rollover) {<br>              toolbar.putClientProperty(<br>              &quot;JToolBar.isRollover&quot;, <br>              new Boolean(cb.isSelected()));</p>            <p> toolbar.repaint();<br>              }<br>              else if(cb == freeStanding) {<br>              scrollbar.putClientProperty(<br>              &quot;JScrollBar.isFreeStanding&quot;, <br>              new Boolean(cb.isSelected()));</p>            <p> scrollbar.repaint();<br>              }<br>              }<br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 7.2.1 客户属性</p>            <p>&nbsp;</p>            <p> 7.2.2 主题</p>            <p align="center"><b>例7-6 一个简单的定制主题</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import javax.swing.*;<br>            import javax.swing.plaf.*;<br>            import javax.swing.plaf.metal.*;<br>            import javax.swing.plaf.*;            <p>public class Test extends JApplet {<br>              public void init() {<br>              Container contentPane = getContentPane();</p>            <p> contentPane.setLayout(new FlowLayout());</p>            <p> setMetalTheme(new ExperimentalTheme());</p>            <p> contentPane.add(new JButton(&quot;button&quot;));<br>              contentPane.add(new JCheckBox(&quot;check me&quot;));<br>              }<br>              private void setMetalTheme(MetalTheme theme) {<br>              MetalLookAndFeel.setCurrentTheme(new ExperimentalTheme());</p>            <p> // Metal Look and Feel must be (re)loaded for the<br>              // new theme to take effect ...</p>            <p> try {<br>              UIManager.setLookAndFeel(<br>              &quot;javax.swing.plaf.metal.MetalLookAndFeel&quot;);<br>              }<br>              catch(IllegalAccessException e1) {}<br>              catch(UnsupportedLookAndFeelException e2) {}<br>              catch(InstantiationException e3) {}<br>              catch(ClassNotFoundException e4) {}<br>              }<br>              }<br>              class ExperimentalTheme extends DefaultMetalTheme {<br>              public FontUIResource getControlTextFont() { <br>              return new FontUIResource(&quot;SanSerif&quot;, <br>              Font.BOLD + Font.ITALIC, 24);<br>              }<br>              }</p>            <hr size="1" noshade>            <p>&nbsp;</p>            <p align="center"><b>例7-7 安装一个附加界面样式</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              public void init() {<br>              UIManager.addAuxiliaryLookAndFeel( <br>              new ExampleAuxiliaryLookAndFeel());</p>            <p> Container contentPane = getContentPane();<br>              JButton button = new JButton(&quot;button&quot;);</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(button);<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例7-8 附加界面样式的例子</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import javax.swing.*;            <p>public class ExampleAuxiliaryLookAndFeel extends LookAndFeel {<br>              public String getDescription(){<br>              return &quot;example auxiliary look and feel&quot;;<br>              }<br>              public String getID() {<br>              return &quot;example&quot;;<br>              }<br>              public String getName() {<br>              return &quot;example auxiliary&quot;; <br>              }<br>              public boolean isNativeLookAndFeel() {<br>              return false;<br>              }<br>              public boolean isSupportedLookAndFeel() {<br>              return true;<br>              }<br>              public UIDefaults getDefaults() {<br>              UIDefaults table = new UIDefaults();</p>            <p> Object[] uiDefaults = {<br>              &quot;ButtonUI&quot;, &quot;AuxiliaryButtonUI&quot;<br>              };</p>            <p> table.putDefaults(uiDefaults);<br>              return table;<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例7-9 一个附加UI</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.accessibility.*;<br>            import javax.swing.*;<br>            import javax.swing.plaf.*;            <p>public class AuxiliaryButtonUI extends ComponentUI {<br>              private static ComponentUI cui = new AuxiliaryButtonUI();<br>              private static AuxiliaryButtonMouseListener ml = <br>              new AuxiliaryButtonMouseListener();</p>            <p> // must be implemented<br>              public static ComponentUI createUI(JComponent c) {<br>              return cui;<br>              }<br>              public void installUI(JComponent c) {<br>              c.addMouseListener(ml);<br>              }<br>              public void uninstallUI(JComponent c) {<br>              c.removeMouseListener(ml);<br>              }<br>              public void update(Graphics g, JComponent c) {<br>              // don't want ComponentUI default behavior, which is<br>              // to clear the background<br>              }<br>              }<br>              class AuxiliaryButtonMouseListener extends MouseAdapter {<br>              public void mouseEntered(MouseEvent e) {<br>              JComponent c = (JComponent)e.getSource();<br>              AccessibleContext ac = c.getAccessibleContext();<br>              String role = ac.getAccessibleRole().toString();<br>              String name = ac.getAccessibleName();</p>            <p> System.out.println(&quot;mouse entered component of type &quot;               +<br>              role + &quot; named &quot; + name);<br>              }<br>              }</p>            <hr size="1" noshade>            <p>&nbsp;</p>            <p>&nbsp;</p>            <p> 7.3 附加UI</p>            <p>&nbsp;</p>            <p> 7.4 本章回顾</p>            <p>&nbsp;</p>            <p>[<a href="index.html" target="_self">目录</a>][<a href="s06.htm">上一页</a>][<a href="s08.htm">下一页</a>](飒龙收藏/2002.5.18)             </p>            </td>          </tr>        </tbody>      </table>    </td>  </tr></tbody></table><script language="javascript">bottomprint()</script></body></html>

⌨️ 快捷键说明

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