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

📄 s16.htm

📁 java图形设计卷2 swing
💻 HTM
📖 第 1 页 / 共 3 页
字号:
            <p align="center"><b>例子 16-8 JFileChooser动作事件</b></p>            <hr size="1">            import java.awt.*;<br>            import java.awt.event.*;<br>            import java.io.File;<br>            import javax.swing.*;            <p>public class Test extends JFrame {<br>              JFileChooser chooser = new JFileChooser();<br>              JDialog dialog;<br>              JButton button = new JButton(&quot;show file chooser ...&quot;);</p>            <p> public Test() {<br>              super(&quot;Simple File Chooser Application&quot;);<br>              Container contentPane = getContentPane();</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(button); </p>            <p> button.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              String title = chooser.getDialogTitle();</p>            <p> if(title == null)<br>              chooser.getUI().getDialogTitle(chooser);</p>            <p> dialog = new JDialog((Frame)null, title, false);<br>              <br>              Container dialogContentPane = <br>              dialog.getContentPane();</p>            <p> dialogContentPane.setLayout(new BorderLayout());<br>              dialogContentPane.add(chooser, <br>              BorderLayout.CENTER);<br>              <br>              dialog.setTitle(&quot;Non-Modal File Chooser&quot;);</p>            <p> dialog.pack();<br>              dialog.setLocationRelativeTo(Test.this);<br>              <br>              dialog.setVisible(true); <br>              }<br>              });<br>              chooser.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              String state = (String)e.getActionCommand();</p>            <p> if(state.equals(JFileChooser.APPROVE_SELECTION)) {<br>              File file = chooser.getSelectedFile();</p>            <p> JOptionPane.showMessageDialog(<br>              null, file.getPath());<br>              }<br>              else if(<br>              state.equals(JFileChooser.CANCEL_SELECTION)) {<br>              JOptionPane.showMessageDialog(<br>              null, &quot;Canceled&quot;);<br>              }<br>              // JFileChooser action listeners are notified<br>              // when one either the approve button or<br>              // cancel button is activated<br>              dialog.setVisible(false);</p>            <p> }<br>              });<br>              }<br>              public static void main(String args[]) {<br>              JFrame f = new Test();<br>              f.setBounds(300,300,350,100);<br>              f.setVisible(true);</p>            <p> f.setDefaultCloseOperation(<br>              WindowConstants.DISPOSE_ON_CLOSE);<br>              <br>              f.addWindowListener(new WindowAdapter() {<br>              public void windowClosed(WindowEvent e) {<br>              System.exit(0); <br>              }<br>              });<br>              }<br>              }</p>            <hr noshade size="1">            <p> 16.1.8 JFileChooser类总结</p>            <p>&nbsp;</p>            <p> 16.1.9 AWT兼容</p>            <p>&nbsp;</p>            <p align="center">&nbsp; </p>            <p> 16.2 JColorChooser</p>            <p>&nbsp;</p>            <p align="center"><b>例16-9 在一个小应用程序中显示的颜色选取器</b></p>            <hr size="1">            import javax.swing.*;<br>            import javax.swing.colorchooser.*;<br>            import javax.swing.event.*;<br>            import java.awt.*;            <p>public class Test extends JApplet {<br>              JColorChooser chooser = new JColorChooser();<br>              ColorSelectionModel model = chooser.getSelectionModel();</p>            <p> public void init() {<br>              getContentPane().add(chooser, BorderLayout.CENTER);</p>            <p> model.addChangeListener(new ChangeListener() {<br>              public void stateChanged(ChangeEvent e) {<br>              showStatus(&quot;Color: &quot; + chooser.getColor());<br>              }<br>              });<br>              }<br>              }</p>            <hr noshade size="1">            <p> 16.2.1 在对话框中显示颜色选取器</p>            <p>&nbsp;</p>            <p align="center"><b>例16-10 在对话框中显示的颜色选取器</b></p>            <hr size="1">            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JApplet {<br>              public void init() {<br>              getContentPane().add(new Palette(), BorderLayout.CENTER);<br>              }<br>              }<br>              class Palette extends JPanel {<br>              private Color[] defaultColors = new Color[] {<br>              Color.blue, Color.red, Color.yellow, Color.green,<br>              Color.magenta, Color.darkGray, Color.white, Color.orange,<br>              Color.pink, Color.cyan, Color.lightGray, Color.gray,<br>              };</p>            <p> public Palette() {<br>              int columns = 3;</p>            <p> setBorder(<br>              BorderFactory.createTitledBorder(&quot;Color Palette&quot;));</p>            <p> setLayout(new GridLayout(columns,0,1,1));</p>            <p> for(int i=0; i &lt; defaultColors.length; ++i)<br>              add(new ColorPatch(defaultColors[i]));<br>              } <br>              }<br>              class ColorPatch extends JPanel {<br>              JApplet applet;<br>              Color selectedColor;</p>            <p> public ColorPatch(Color color) {<br>              setBorder(BorderFactory.createEtchedBorder());<br>              setBackground(color);</p>            <p> addMouseListener(new MouseAdapter() {<br>              public void mousePressed(MouseEvent e) {<br>              selectedColor = JColorChooser.showDialog(<br>              ColorPatch.this, // parent comp<br>              &quot;Pick A Color&quot;, // dialog title<br>              getBackground()); // initial color</p>            <p> if(selectedColor == null) {<br>              JOptionPane.showMessageDialog(ColorPatch.this,<br>              &quot;ColorChooser Canceled&quot;);<br>              }<br>              else {<br>              setBackground(selectedColor);<br>              repaint();</p>            <p> JOptionPane.showMessageDialog(ColorPatch.this,<br>              &quot;Color Selected: &quot; + selectedColor);<br>              }<br>              }<br>              });<br>              }<br>              }</p>            <hr noshade size="1">            <p> 16.2.2 定制颜色选取器</p>            <p>&nbsp;</p>            <p align="center"><b>例16-11 颜色选取器中的一个定制预览</b></p>            <hr size="1">            import javax.swing.*;<br>            import javax.swing.colorchooser.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JApplet {<br>              private JColorChooser chooser = new JColorChooser();<br>              private JButton button = new JButton(&quot;Show Color Chooser&quot;);<br>              private JDialog dialog;</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(button, BorderLayout.CENTER);</p>            <p> chooser.setPreviewPanel(new PreviewPanel());</p>            <p> button.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {</p>            <p> if(dialog == null) <br>              dialog = JColorChooser.createDialog(<br>              Test.this, // parent comp<br>              &quot;Pick A Color&quot;, // dialog title<br>              false, // modality<br>              chooser, <br>              null, null);</p>            <p> dialog.setVisible(true);<br>              }<br>              });<br>              }<br>              class PreviewPanel extends JPanel {<br>              public PreviewPanel() {<br>              setPreferredSize(new Dimension(0,100));<br>              setBorder(BorderFactory.createRaisedBevelBorder());<br>              }<br>              public void paintComponent(Graphics g) {<br>              Dimension size = getSize();</p>            <p> g.setColor(getForeground());<br>              g.fillRect(0,0,size.width,size.height);<br>              }<br>              }<br>              }</p>            <hr noshade size="1">            <p align="center"><b>例16-12 实现一个定制颜色选取器面板</b></p>            <hr size="1">            import javax.swing.*;<br>            import javax.swing.event.*;<br>            import javax.swing.colorchooser.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JApplet {<br>              private JColorChooser chooser = new JColorChooser();<br>              private AbstractColorChooserPanel colorPanels[] =<br>              new AbstractColorChooserPanel[] {<br>              new ListPanel(),<br>              };<br>              private JButton button = new JButton(&quot;Show Color Chooser&quot;);<br>              private JDialog dialog;</p>            <p> public void init() {<br>              Container contentPane = getContentPane();</p>            <p> contentPane.setLayout(new FlowLayout());<br>              contentPane.add(button, BorderLayout.CENTER);</p>            <p> chooser.setChooserPanels(colorPanels);</p>            <p> button.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              if(dialog == null) <br>              dialog = JColorChooser.createDialog(<br>              Test.this, // parent comp<br>              &quot;Pick A Color&quot;, // dialog title<br>              false, // modality<br>              chooser, <br>              null, null);</p>            <p> dialog.setVisible(true);<br>              }<br>              });<br>              }<br>              }<br>              class ListPanel extends AbstractColorChooserPanel <br>              implements ListSelectionListener {<br>              private JPanel labelPanel = new JPanel(),<br>              listPanel = new JPanel();</p>            <p> private JList redList = new JList(), blueList = new JList(), <br>              greenList = new JList();</p>            <p> private DefaultListModel redModel = new DefaultListModel(),<br>              blueModel = new DefaultListModel(),<br>              greenModel = new DefaultListModel();</p>            <p> private boolean isAdjusting = false;</p>            <p> public void updateChooser() {<br>              if( ! isAdjusting) {<br>              isAdjusting = true;</p>            <p> Color color = getColorFromModel();<br>              int r = color.getRed(), g = color.getGreen(), <br>              b = color.getBlue();</p>            <p> redList.setSelectedIndex(r);<br>              redList.ensureIndexIsVisible(r);</p>            <p> blueList.setSelectedIndex(b);<br>              blueList.ensureIndexIsVisible(b);</p>            <p> greenList.setSelectedIndex(g);<br>              greenList.ensureIndexIsVisible(g);</p>            <p> isAdjusting = false;<br>              }<br>              }<br>              protected void buildChooser() {<br>              redList.setFixedCellWidth(50);<br>              greenList.setFixedCellWidth(50);<br>              blueList.setFixedCellWidth(50);</p>            <p> for(int i=0; i &lt; 256; ++i) {<br>              redModel.addElement(Integer.toString(i));<br>              greenModel.addElement(Integer.toString(i));<br>              blueModel.addElement(Integer.toString(i));<br>              }</p>            <p> redList.setModel(redModel);<br>              greenList.setModel(greenModel);<br>              blueList.setModel(blueModel);</p>            <p> listPanel.setLayout(new GridLayout(0,3,10,0));</p>            <p> listPanel.add(new JScrollPane(redList));<br>              listPanel.add(new JScrollPane(blueList));<br>              listPanel.add(new JScrollPane(greenList));</p>            <p> labelPanel.setLayout(new GridLayout(0,3,10,0));</p>            <p> labelPanel.add(new JLabel(&quot;Red&quot;));<br>              labelPanel.add(new JLabel(&quot;Blue&quot;));<br>              labelPanel.add(new JLabel(&quot;Green&quot;));</p>            <p> setLayout(new BorderLayout());<br>              add(labelPanel, BorderLayout.NORTH);<br>              add(listPanel, BorderLayout.CENTER);</p>            <p> redList.addListSelectionListener(this);<br>              greenList.addListSelectionListener(this);<br>              blueList.addListSelectionListener(this);<br>              }<br>              public void valueChanged(ListSelectionEvent e) {<br>              int r = redList.getSelectedIndex(),<br>              b = blueList.getSelectedIndex(),<br>              g = greenList.getSelectedIndex();</p>            <p> if(r != -1 &amp;&amp; g != -1 &amp;&amp; b != -1)<br>              getColorSelectionModel().setSelectedColor(<br>              new Color(r,g,b));<br>              }<br>              public String getDisplayName() {<br>              return &quot;display name&quot;;<br>              }<br>              public Icon getSmallDisplayIcon() {<br>              return null;<br>              }<br>              public Icon getLargeDisplayIcon() {<br>              return null;<br>              }<br>              }</p>            <hr noshade size="1">            <p>&nbsp;</p>            <p> 16.2.3 JColorChooser属性</p>            <p>&nbsp;</p>            <p> 16.2.4 JColorChooser事件</p>            <p>&nbsp;</p>            <p> 16.2.5 JColorChooser类总结</p>            <p>&nbsp;</p>            <p> 16.2.6 AWT兼容</p>            <p>&nbsp;</p>            <p> 16.3 本章回顾</p>            <p>&nbsp;</p>            <p>&nbsp;</p>            <p> [<a href="index.html" target="_self">目录</a>][<a href="s15.htm">上一页</a>][<a href="s17.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 + -