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

📄 s04.htm

📁 Java2Swingt界面设计
💻 HTM
📖 第 1 页 / 共 4 页
字号:
              logCheckBox.addItemListener(new ItemListener() {<br>              public void itemStateChanged(ItemEvent e) {<br>              AbstractButton b = (AbstractButton)e.getSource();</p>            <p> if(b.isSelected()) logIsOn = true;<br>              else logIsOn = false;<br>              }<br>              });</p>            <p> return controls;<br>              }<br>              public static void main(String args[]) {<br>              final JFrame f = new JFrame();<br>              JApplet applet = new DebugGraphicsTest();</p>            <p> applet.init();<br>              f.setContentPane(applet.getContentPane());</p>            <p> f.setBounds(100,100,300,175);<br>              f.setTitle(&quot;DebugGraphicsTest&quot;);<br>              f.setVisible(true);</p>            <p> f.addWindowListener(new WindowAdapter() {<br>              public void windowClosing(WindowEvent event) {<br>              f.dispose();<br>              System.exit(0);<br>              }<br>              });<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 4.6 自动滚动</p>            <p>&nbsp;</p>            <p align="center"><b>例4-15 包裹在滚动窗格中的一个列表</b></p>            <hr size="1" noshade>            import javax.swing.*;<br>            import java.awt.*;            <p>public class TestApplet extends JApplet {<br>              public void init() {<br>              String[] items = { &quot;one&quot;, &quot;two&quot;, &quot;three&quot;,               <br>              &quot;four&quot;, &quot;five&quot;, &quot;six&quot; };</p>            <p> Container contentPane = getContentPane();<br>              JList list = new JList(items);</p>            <p> list.setVisibleRowCount(3);</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(new JScrollPane(list));<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例4-16 自动滚动测试小应用程序</b></p>            <hr size="1" noshade>            <hr size="1" noshade>            <p>&nbsp;</p>            <p align="center"><b>例4-17 AutoscrollViewport列表</b></p>            <hr size="1" noshade>            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>class AutoscrollViewport extends JViewport {<br>              Point scrollTo = new Point(), last = new Point();<br>              boolean manualDragUnderway = false;<br>              final int increment;</p>            <p> public AutoscrollViewport(Component component, int inc) {<br>              this.increment = inc;</p>            <p> setView(component);</p>            <p> setAutoscrolls(true);<br>              setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));</p>            <p> addMouseListener(new MouseAdapter() {<br>              public void mousePressed(MouseEvent e) {<br>              last.x = e.getPoint().x;<br>              last.y = e.getPoint().y;<br>              manualDragUnderway = true;<br>              }<br>              }); <br>              addMouseMotionListener(new MouseMotionAdapter() {<br>              public void mouseDragged(MouseEvent e) {<br>              Point drag = e.getPoint();<br>              Point viewPos = getViewPosition();<br>              Point offset = new Point(drag.x - last.x,<br>              drag.y - last.y);<br>              last.x = drag.x;<br>              last.y = drag.y;</p>            <p> if(contains(drag)) {<br>              if(manualDragUnderway) {<br>              scrollTo.x = viewPos.x - offset.x;<br>              scrollTo.y = viewPos.y - offset.y;<br>              setViewPosition(scrollTo);<br>              }<br>              }<br>              else { // autoscrolling ...<br>              Rectangle bounds = getBounds();</p>            <p> manualDragUnderway = false;</p>            <p> if(drag.x &gt; bounds.x + bounds.width) {<br>              // scroll right<br>              viewPos.x -= increment;<br>              setViewPosition(viewPos);<br>              }<br>              if(drag.x &lt; 0) {<br>              // scroll left<br>              viewPos.x += increment;<br>              setViewPosition(viewPos);<br>              }<br>              if(drag.y &gt; bounds.y + bounds.height) {<br>              // scroll down<br>              viewPos.y -= increment;<br>              setViewPosition(viewPos);<br>              }<br>              if(drag.y &lt; 0) {<br>              // scroll up<br>              viewPos.y += increment;<br>              setViewPosition(viewPos);<br>              }<br>              }<br>              }<br>              });<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 4.7 工具提示</p>            <p>&nbsp;</p>            <p align="center"><b>例4-18 为一个按钮设置工具提示文本</b></p>            <hr size="1" noshade>            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class ToolTipTest extends JApplet {<br>              public void init() {<br>              Container contentPane = getContentPane();<br>              JButton button = new JButton(&quot;I've got a tooltip&quot;);</p>            <p> button.setMnemonic(KeyEvent.VK_G);</p>            <p> button.setToolTipText(<br>              &quot;rather lengthy tooltip text for button&quot;);</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(button);<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 4.7.1 基于鼠标位置的工具提示</p>            <p>&nbsp;</p>            <p align="center"><b>例4-19 根据鼠标位置来显示不同的工具提示</b></p>            <hr size="1" noshade>            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class ToolTipsBasedOnMousePosition extends JApplet {<br>              public void init() {<br>              Container contentPane = getContentPane();<br>              <br>              //ImageMap map = new ImageMap(&quot;tiger.gif&quot;);<br>              Icon icon = new ImageIcon(this.getClass().getResource(&quot;tiger.gif&quot;));<br>              ImageMap map = new ImageMap(icon);<br>              <br>              contentPane.setLayout(new FlowLayout());<br>              contentPane.add(map);<br>              }<br>              }<br>              class ImageMap extends JLabel {<br>              private Rectangle teeth= new Rectangle(62,203,80,55),<br>              nose = new Rectangle(37,164,130,30),<br>              ear = new Rectangle(228,10,65,55),<br>              rEye = new Rectangle(137,103,20,17),<br>              lEye = new Rectangle(65,97,16,15);</p>            <p> //public ImageMap(String imageName) {<br>              public ImageMap(Icon imageName) {<br>              //super(new ImageIcon(imageName));<br>              super(imageName);<br>              setToolTipText(&quot;tiger!&quot;);<br>              }<br>              public String getToolTipText(MouseEvent e) {<br>              Point p = e.getPoint();<br>              String s = null;</p>            <p> if(teeth.contains(p)) s = &quot;ooooh, big teeth!&quot;;<br>              else if(nose.contains(p)) s = &quot;keen sense of smell&quot;;<br>              else if(ear.contains(p)) s = &quot;acute hearing&quot;;<br>              else if(rEye.contains(p) || lEye.contains(p)) <br>              s = &quot;excellent vision&quot;;</p>            <p> return s == null ? getToolTipText() : s;<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 4.7.2 工具提示的首选位置</p>            <p>&nbsp;</p>            <p> 4.7.3 定制工具提示的行为</p>            <p>&nbsp;</p>            <p> 4.7.4 定制工具提示的界面样式</p>            <p>&nbsp;</p>            <p> 4.8 键击处理</p>            <p>&nbsp;</p>            <p align="center"><b>例4-20 处理嵌套键击</b></p>            <hr size="1" noshade>            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class KeystrokeTest extends JApplet {<br>              private JButton button = new JButton(&quot;button&quot;);</p>            <p> public void init() {<br>              Container contentPane = getContentPane();<br>              JPanel panel = new JPanel();<br>              JCheckBox checkbox = new JCheckBox(&quot;checkbox&quot;);<br>              JButton southButton = new JButton(&quot;south button&quot;);<br>              Listener listener = new Listener();</p>            <p> panel.setBorder(<br>              BorderFactory.createTitledBorder(<br>              (&quot;Ancestor of button and checkbox&quot;)));</p>            <p> checkbox.registerKeyboardAction(<br>              listener,<br>              KeyStroke.getKeyStroke(KeyEvent.VK_F,0,false),<br>              JComponent.WHEN_FOCUSED);</p>            <p> panel.registerKeyboardAction(<br>              listener,<br>              KeyStroke.getKeyStroke(KeyEvent.VK_A, <br>              InputEvent.ALT_MASK, false),<br>              JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);</p>            <p> southButton.registerKeyboardAction(<br>              listener,<br>              KeyStroke.getKeyStroke(KeyEvent.VK_W, 0, true),<br>              JComponent.WHEN_IN_FOCUSED_WINDOW);</p>            <p> panel.add(button);<br>              panel.add(checkbox);</p>            <p> contentPane.add(panel, &quot;Center&quot;);<br>              contentPane.add(southButton, &quot;South&quot;);<br>              }<br>              }<br>              class Listener implements ActionListener {<br>              public void actionPerformed(ActionEvent e) {<br>              Object src = e.getSource();<br>              String cname = src.getClass().getName();</p>            <p> if(src instanceof JCheckBox) {<br>              System.out.print(&quot;'f' key PRESSED when checkbox&quot;);<br>              System.out.println(&quot; had focus&quot;);<br>              }<br>              else if(src instanceof JPanel) {<br>              System.out.print(&quot;'ALT-a' key PRESSED when ancestor&quot;);<br>              System.out.println(&quot; of titled panel had focus&quot;);<br>              }<br>              else if(src instanceof JButton) {<br>              System.out.print(&quot;'w' key RELEASED when any&quot;);<br>              System.out.println(&quot; component in window had focus&quot;);<br>              }<br>              System.out.println(&quot;Source: &quot; + cname);<br>              System.out.println();<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 4.9 客户属性</p>

⌨️ 快捷键说明

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