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

📄 s15.htm

📁 书籍主要用于做图形界面使用里面后好多
💻 HTM
📖 第 1 页 / 共 2 页
字号:
              true, // resizble<br>              true, // closable<br>              true, // maximizable<br>              true); // iconifiable</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> contentPane.add(desktopPane, BorderLayout.CENTER);</p>            <p> jif.setBounds(50, 50, 300, 200);<br>              jif.setFrameIcon(new ImageIcon(this.getClass().getResource(&quot;print.gif&quot;)));<br>              desktopPane.add(jif);<br>              jif.show();//源添加的一句,原文没有<br>              }<br>              }</p>            <hr size="1" noshade>            <p>&nbsp;</p>            <p>&nbsp;</p>            <p> 15.1.3 AWT兼容</p>            <p>&nbsp;</p>            <p align="center"><b>例15-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>              CustomDesktopPane desktopPane = new CustomDesktopPane();<br>              int frameCount = 1, numFrames = 5, x, y;</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> setJMenuBar(createMenuBar());<br>              contentPane.add(desktopPane, BorderLayout.CENTER);</p>            <p> for(int i=0; i &lt; numFrames; ++i) {<br>              JInternalFrame jif = new JInternalFrame(<br>              &quot;Internal Frame &quot; + frameCount++, // title<br>              true, // resizable<br>              true, // closable<br>              true, // maximizable<br>              true); // iconifiable</p>            <p> x = (int)(Math.random() * 100);<br>              y = (int)(Math.random() * 100);</p>            <p> jif.setBounds(x, y, 250, 100);<br>              desktopPane.putClientProperty(<br>              &quot;JDesktopPane.dragMode&quot;,<br>              &quot;outline&quot;);</p>            <p> desktopPane.add(jif);<br>              jif.show();//新添加一句,原文没有<br>              }<br>              }<br>              private JMenuBar createMenuBar() {<br>              JMenuBar menubar = new JMenuBar();<br>              JMenu windowMenu = new JMenu(&quot;Window&quot;);</p>            <p> windowMenu.add(new OpenAllAction());<br>              windowMenu.add(new CloseAllAction());<br>              windowMenu.add(new CascadeAction());</p>            <p> menubar.add(windowMenu);<br>              return menubar;<br>              }<br>              class OpenAllAction extends AbstractAction {<br>              public OpenAllAction() {<br>              super(&quot;open all&quot;);<br>              }<br>              public void actionPerformed(ActionEvent e) {<br>              desktopPane.openAll();<br>              }<br>              }<br>              class CloseAllAction extends AbstractAction {<br>              public CloseAllAction() {<br>              super(&quot;close all&quot;);<br>              }<br>              public void actionPerformed(ActionEvent e) {<br>              desktopPane.closeAll();<br>              }<br>              }<br>              class CascadeAction extends AbstractAction {<br>              public CascadeAction() {<br>              super(&quot;cascade&quot;);<br>              }<br>              public void actionPerformed(ActionEvent e) {<br>              desktopPane.cascade();<br>              }<br>              }<br>              }<br>              class CustomDesktopPane extends JDesktopPane { <br>              private int xoffset = 20, yoffset = 20, w = 250, h = 350;</p>            <p> public void closeAll() {<br>              JInternalFrame[] frames = getAllFrames();</p>            <p> for(int i=0; i &lt; frames.length; ++i) {<br>              if(!frames[i].isIcon()) {<br>              try {<br>              frames[i].setIcon(true);<br>              }<br>              catch(java.beans.PropertyVetoException ex) {<br>              System.out.println(&quot;iconification vetoed!&quot;);<br>              }<br>              }<br>              }<br>              }<br>              public void openAll() {<br>              JInternalFrame[] frames = getAllFrames();</p>            <p> for(int i=0; i &lt; frames.length; ++i) {<br>              if(frames[i].isIcon()) {<br>              try {<br>              frames[i].setIcon(false);<br>              }<br>              catch(java.beans.PropertyVetoException ex) {<br>              System.out.println(&quot;restoration vetoed!&quot;);<br>              }<br>              }<br>              }<br>              }<br>              public void cascade() {<br>              JInternalFrame[] frames = getAllFrames();<br>              int x = 0, y = 0;</p>            <p> for(int i=0; i &lt; frames.length; ++i) {<br>              if( ! frames[i].isIcon()) {<br>              frames[i].setBounds(x,y,w,h);<br>              x += xoffset;<br>              y += yoffset;<br>              }<br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 15.2 JDesktopPane</p>            <p>&nbsp;</p>            <p><br>              15.2.1 JDesktopPane属性</p>            <p>&nbsp;</p>            <p>15.2.2 JDesktopPane事件</p>            <p>&nbsp;</p>            <p> 15.2.3 JDesktopPane类总结 </p>            <p>&nbsp;</p>            <p> 15.2.4 AWT兼容</p>            <p>&nbsp;</p>            <p> 15.3 DesktopManager</p>            <p>&nbsp;</p>            <p align="center"><b>例15-6 一个定制的DesktopManager</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>              JDesktopPane desktopPane = new JDesktopPane();</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> contentPane.add(desktopPane, BorderLayout.CENTER);<br>              desktopPane.setDesktopManager(new OutlineManager());</p>            <p> JInternalFrame jif = new JInternalFrame(<br>              &quot;Outline Drag and Resize&quot;, // title<br>              true, // resizable<br>              true, // closable<br>              true, // maximizable<br>              true); // iconifiable</p>            <p> jif.setBounds(10, 10, 250, 100);<br>              desktopPane.add(jif);<br>              jif.show();//新添加的,原文没有<br>              }<br>              }<br>              class OutlineManager extends DefaultDesktopManager { <br>              private Rectangle start, last;<br>              private boolean first = true;</p>            <p> // dragging ...</p>            <p> public void beginDraggingFrame(JComponent frame) {<br>              initializeOutline(frame);<br>              }<br>              public void dragFrame(JComponent frame, int x, int y) {<br>              updateOutline(frame, x, y, start.width, start.height);<br>              }<br>              public void endDraggingFrame(JComponent frame) {<br>              endOutline(frame);<br>              }</p>            <p> // resizing ...</p>            <p> public void beginResizingFrame(JComponent frame, int dir) {<br>              initializeOutline(frame);<br>              }<br>              public void resizeFrame(JComponent frame, <br>              int x, int y, int w, int h) {<br>              updateOutline(frame, x, y, w, h);<br>              }<br>              public void endResizingFrame(JComponent frame) {<br>              endOutline(frame);<br>              }</p>            <p> // outline ...</p>            <p> private void initializeOutline(final JComponent frame) {<br>              // the call to setVisible() calls repaint, which<br>              // places a paint event on the event queue.<br>              // therefore, the effect of the setVisible() call is<br>              // not apparent until after this method returns</p>            <p> frame.setVisible(false);<br>              start = frame.getBounds();<br>              last = new Rectangle(start);<br>              first = true;</p>            <p> // the Runnable below paints the initial outline <br>              // after the repaint event spawned by setVisible() is<br>              // handled</p>            <p> SwingUtilities.invokeLater(new Runnable() {<br>              public void run() {<br>              updateOutline(frame,start.x,start.y,<br>              start.width,start.height);<br>              }<br>              });<br>              }<br>              private void updateOutline(JComponent frame, <br>              int x, int y, int w, int h) {<br>              Container container = frame.getParent();<br>              Graphics g = container.getGraphics();</p>            <p> try {<br>              g.setXORMode(container.getBackground());</p>            <p> if( ! first) {<br>              g.drawRect(last.x, last.y, <br>              last.width-1, last.height-1);<br>              }<br>              g.drawRect(x, y, w-1, h-1);<br>              first = false;<br>              }<br>              finally {<br>              g.dispose();<br>              last.setBounds(x,y,w,h);<br>              }<br>              }<br>              private void endOutline(JComponent frame) {<br>              frame.setVisible(true);<br>              setBoundsForFrame(<br>              frame, last.x, last.y, last.width, last.height);<br>              }<br>              }</p>            <hr size="1" noshade>            <p> 15.4 本章回顾</p>            <p>&nbsp;</p>            <p>[<a href="index.html" target="_self">目录</a>][<a href="s14.htm">上一页</a>][<a href="s16.htm">下一页</a>](飒龙收藏/2002.5.18)             </p>            <p>&nbsp; </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 + -