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

📄 s12.htm

📁 Java2Swingt界面设计
💻 HTM
📖 第 1 页 / 共 3 页
字号:
            <p>&nbsp;</p>            <p> 12.3.1 回顾轻量组件的层序</p>            <p>&nbsp;</p>            <p align="center"><b>例12-5 添加到一个内容窗格中的按钮的程序</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              Container cp = getContentPane();</p>            <p> private final Component[] comps = {<br>              new JButton(), new JButton(), <br>              new JButton(), new JButton(), <br>              new JButton(), new JButton(), <br>              };<br>              public void init() {<br>              cp.setLayout(null);</p>            <p> for(int i=0; i &lt; comps.length; ++i) {<br>              AbstractButton button = (AbstractButton)comps[i];<br>              cp.add(button);</p>            <p> String t = &quot;Button #&quot;;</p>            <p> t += i + &quot; Index: &quot; + getIndexOf(button);</p>            <p> button.setText(t);<br>              button.setBounds(i*50, i*50, 350, 75);<br>              System.out.println(&quot;Adding: &quot; + button.getText());<br>              }<br>              }<br>              private int getIndexOf(Component button) {<br>              int ncomponents = cp.getComponentCount();</p>            <p> for(int i=0; i &lt; ncomponents; ++i) {<br>              Component c = cp.getComponent(i);<br>              if(button == c)<br>              return i;<br>              }<br>              return -1;<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center">&nbsp;</p>            <p> 12.3.2 为组件分配器</p>            <p>&nbsp;</p>            <p align="center"><b>例12-6 所包含在一个分层窗格中的组件分配到层中</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              private JLayeredPane lp = new JLayeredPane();</p>            <p> private Integer[] layers = {<br>              JLayeredPane.FRAME_CONTENT_LAYER,<br>              JLayeredPane.DEFAULT_LAYER,<br>              JLayeredPane.PALETTE_LAYER,<br>              JLayeredPane.MODAL_LAYER,<br>              JLayeredPane.POPUP_LAYER,<br>              JLayeredPane.DRAG_LAYER,<br>              };<br>              private final Component[] comps = {<br>              new JButton(&quot;Frame Content&quot;), new JButton(&quot;Default&quot;),               <br>              new JButton(&quot;Palette&quot;), new JButton(&quot;Modal&quot;),               <br>              new JButton(&quot;Popup&quot;), new JButton(&quot;Drag&quot;), <br>              };<br>              public void init() {<br>              setContentPane(lp);<br>              lp.setLayout(null);</p>            <p> for(int i=0; i &lt; comps.length; ++i) {<br>              AbstractButton button = (AbstractButton)comps[i];</p>            <p> System.out.println(&quot;Adding: &quot; + button.getText());</p>            <p> lp.setLayer(button, layers[i].intValue());<br>              lp.add(button);<br>              }<br>              for(int i=0; i &lt; comps.length; ++i) {<br>              AbstractButton button = (AbstractButton)comps[i];<br>              String t = button.getText();<br>              String replacement = new String(&quot;Layer: &quot;);</p>            <p> replacement += t + &quot;(&quot; + lp.getLayer(button) + &quot;),&quot;;<br>              replacement += &quot; Index: &quot; + lp.getIndexOf(button);</p>            <p> button.setText(replacement);<br>              button.setBounds(i*50, i*50, 350, 75); <br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p>&nbsp;</p>            <p> 12.3.3 指定同一层中组件的位置</p>            <p>&nbsp;</p>            <p align="center"><b>例12-7 同一层中放置组件的缺省方式</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              private JLayeredPane lp = new JLayeredPane();</p>            <p> private Integer[] layers = {<br>              JLayeredPane.FRAME_CONTENT_LAYER,<br>              JLayeredPane.DEFAULT_LAYER,<br>              JLayeredPane.DEFAULT_LAYER,<br>              JLayeredPane.DEFAULT_LAYER,<br>              JLayeredPane.PALETTE_LAYER,<br>              JLayeredPane.MODAL_LAYER,<br>              JLayeredPane.POPUP_LAYER,<br>              JLayeredPane.DRAG_LAYER,<br>              };<br>              private final Component[] comps = {<br>              new JButton(&quot;Frame Content&quot;), new JButton(&quot;Default&quot;),               <br>              new JButton(&quot;default 1&quot;), new JButton(&quot;default 2&quot;),               <br>              new JButton(&quot;Palette&quot;), new JButton(&quot;Modal&quot;),               <br>              new JButton(&quot;Popup&quot;), new JButton(&quot;Drag&quot;), <br>              };<br>              public void init() {<br>              setContentPane(lp);<br>              lp.setLayout(null);</p>            <p> for(int i=0; i &lt; comps.length; ++i) {<br>              AbstractButton button = (AbstractButton)comps[i];</p>            <p> lp.setLayer(button, layers[i].intValue());<br>              lp.add(button);<br>              }<br>              for(int i=0; i &lt; comps.length; ++i) {<br>              AbstractButton button = (AbstractButton)comps[i];<br>              String t = button.getText();<br>              String replacement = new String(&quot;Layer: &quot;);</p>            <p> replacement += t + &quot;(&quot; + lp.getLayer(button) + &quot;),&quot;;<br>              replacement += &quot; Index: &quot; + lp.getIndexOf(button);<br>              replacement += &quot; Position: &quot; + <br>              lp.getPosition(button);</p>            <p> button.setText(replacement);<br>              button.setBounds(i*50, i*50, 350, 75); <br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p align="center"><b>例12-8 显式地设置同层中组件的位置</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              private JLayeredPane lp = new JLayeredPane();</p>            <p> private Integer[] layers = {<br>              JLayeredPane.FRAME_CONTENT_LAYER,<br>              JLayeredPane.DEFAULT_LAYER,<br>              JLayeredPane.DEFAULT_LAYER,<br>              JLayeredPane.DEFAULT_LAYER,<br>              JLayeredPane.PALETTE_LAYER,<br>              JLayeredPane.MODAL_LAYER,<br>              JLayeredPane.POPUP_LAYER,<br>              JLayeredPane.DRAG_LAYER,<br>              };<br>              private final Component[] comps = {<br>              new JButton(&quot;Frame Content&quot;), new JButton(&quot;Default&quot;),               <br>              new JButton(&quot;default 1&quot;), new JButton(&quot;default 2&quot;),               <br>              new JButton(&quot;Palette&quot;), new JButton(&quot;Modal&quot;),               <br>              new JButton(&quot;Popup&quot;), new JButton(&quot;Drag&quot;), <br>              };<br>              public void init() {<br>              setContentPane(lp);<br>              lp.setLayout(null);</p>            <p> for(int i=0; i &lt; comps.length; ++i) {<br>              AbstractButton button = (AbstractButton)comps[i];<br>              String t = button.getText();</p>            <p> lp.setLayer(button, layers[i].intValue());<br>              lp.add(button);<br>              }<br>              for(int i=0; i &lt; comps.length; ++i) {<br>              AbstractButton button = (AbstractButton)comps[i];<br>              String t = button.getText();<br>              String replacement = new String(&quot;Layer: &quot;);</p>            <p> if(t.equals(&quot;Default&quot;))<br>              lp.setPosition(button, 2); <br>              else if(t.equals(&quot;default 2&quot;))<br>              lp.setPosition(button, 0); </p>            <p> replacement += t + &quot;(&quot; + lp.getLayer(button) + &quot;),&quot;;<br>              replacement += &quot; Index: &quot; + lp.getIndexOf(button);<br>              replacement += &quot; Position: &quot; + <br>              lp.getPosition(button);</p>            <p> button.setText(replacement);<br>              button.setBounds(i*50, i*50, 350, 75); <br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p>&nbsp;</p>            <p>&nbsp;</p>            <p> 12.3.4 使用拖动层</p>            <p>&nbsp;</p>            <p align="center"><b>例12-9 使用拖动层</b></p>            <hr noshade size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import javax.swing.*;            <p>public class Test extends JApplet {<br>              public void init() {<br>              setContentPane(new CustomContentPane());<br>              }<br>              }<br>              class CustomContentPane extends JLayeredPane {<br>              private ImageIcon rain = new ImageIcon(&quot;rain.gif&quot;);<br>              private ImageIcon punch = new ImageIcon(&quot;punch.gif&quot;);<br>              private ImageIcon skelly = new ImageIcon(&quot;skelly.gif&quot;);<br>              private int rainw = rain.getIconWidth();<br>              private int rainh = rain.getIconHeight();</p>            <p> private JLabel[] labels = { <br>              new JLabel(&quot;I stay put&quot;, punch, SwingConstants.RIGHT),<br>              new JLabel(&quot;Drag me around!&quot;, <br>              skelly, SwingConstants.RIGHT),<br>              };</p>            <p> public CustomContentPane() {<br>              Dragger listener = new Dragger();<br>              JCheckBox onDragLayer = new JCheckBox(&quot;Drag Layer&quot;);</p>            <p> // JLayeredPane has a null layout by default<br>              setLayout(new FlowLayout());</p>            <p> onDragLayer.setOpaque(false);</p>            <p> add(onDragLayer);<br>              add(labels[0]);<br>              add(labels[1]);</p>            <p> labels[1].addMouseMotionListener(listener);<br>              labels[1].addMouseListener(listener);</p>            <p> setLabelText();</p>            <p> onDragLayer.addItemListener(new ItemListener() {<br>              public void itemStateChanged(ItemEvent e) {<br>              if(e.getStateChange() == ItemEvent.SELECTED) {<br>              setLayer(labels[1], <br>              JLayeredPane.DRAG_LAYER.intValue());<br>              }<br>              else {<br>              setLayer(labels[1], <br>              JLayeredPane.DEFAULT_LAYER.intValue());<br>              <br>              }<br>              setLabelText();<br>              validate();<br>              }<br>              });<br>              }<br>              public void paintComponent(Graphics g) {<br>              Dimension size = getSize();</p>            <p> for(int row=0; row &lt; size.height; row += rainh)<br>              for(int col=0; col &lt; size.width; col += rainw)<br>              rain.paintIcon(this,g,col,row);<br>              }<br>              private void setLabelText() {<br>              for(int i=0; i &lt; labels.length; ++i) {<br>              JLabel label = labels[i];<br>              String t = new String(&quot;Layer: &quot;);</p>            <p> t += &quot;(&quot; + getLayer(label) + &quot;),&quot;;<br>              t += &quot; Index: &quot; + getIndexOf(label);</p>            <p> label.setText(t);<br>              }<br>              }<br>              }<br>              class Dragger extends MouseAdapter <br>              implements MouseMotionListener {<br>              Point press = new Point();<br>              boolean dragging = false;</p>            <p> public void mousePressed(MouseEvent event) {<br>              press.x = event.getX();<br>              press.y = event.getY();<br>              dragging = true;<br>              }<br>              public boolean isDragging() {<br>              return dragging;<br>              }<br>              public void mouseReleased(MouseEvent event) {<br>              dragging = false;<br>              }<br>              public void mouseClicked(MouseEvent event) {<br>              dragging = false;<br>              }<br>              public void mouseMoved(MouseEvent event) {<br>              // don't care<br>              }<br>              public void mouseDragged(MouseEvent event) {<br>              Component c = (Component)event.getSource();</p>            <p> if(dragging) {<br>              Point loc = c.getLocation();<br>              Point pt = new Point();<br>              pt.x = event.getX() + loc.x - press.x;<br>              pt.y = event.getY() + loc.y - press.y;<br>              c.setLocation(pt.x, pt.y);<br>              c.getParent().repaint();<br>              }<br>

⌨️ 快捷键说明

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