JavaSwing_2.2: JButton(按钮) ゝ一纸荒年。 2021-09-22 07:00 277阅读 0赞 本文链接: [http://blog.csdn.net/xietansheng/article/details/74363221][http_blog.csdn.net_xietansheng_article_details_74363221] [Java Swing 图形界面开发(目录)][Java Swing] ## 1. 概述 ## 官方JavaDocsApi: [javax.swing.JButton][] `JButton`,按钮。 **JButton 常用构造方法**: // 创建不带有设置文本或图标的按钮 JButton() // 创建一个带文本的按钮 JButton(String text) // 创建一个带图标的按钮 JButton(Icon icon) **JButton 常用方法**: // 设置按钮的 文本、字体 和 字体颜色 void setText(String text) void setFont(Font font) void setForeground(Color fg) /* 以下方法定义在 javax.swing.AbstractButton 基类中 */ // 设置按钮是否可用 void setEnabled(boolean enable) // 设置按钮在 默认、按下、不可用 时显示的图片 void setIcon(Icon defaultIcon) void setPressedIcon(Icon pressedIcon) void setDisabledIcon(Icon disabledIcon) // 是否绘制边框(设置不绘制边框,再结合上面三个设置按钮状态图片的方法,可实现自定义按钮) void setBorderPainted(boolean b); **JButton 常用监听器**: // 添加 和 移除 按钮的点击事件 void addActionListener(ActionListener listener) void removeActionListener(ActionListener listener) ## 2. 代码实例: 默认按钮 ## package com.xiets.swing; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Main { public static void main(String[] args) { JFrame jf = new JFrame("测试窗口"); jf.setSize(200, 200); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel = new JPanel(); // 创建一个按钮 final JButton btn = new JButton("测试按钮"); // 添加按钮的点击事件监听器 btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 获取到的事件源就是按钮本身 // JButton btn = (JButton) e.getSource(); System.out.println("按钮被点击"); } }); panel.add(btn); jf.setContentPane(panel); jf.setVisible(true); } } 结果展示: ![result\_01.png][result_01.png] 点击按钮,查看控制台输出。 ## 3. 代码实例: 自定义图片按钮 ## 使用以下两张图片分别表示按钮 *正常显示* 和 *被按下时* 显示 的图片: ![button\_normal.png][button_normal.png] ![button\_press.png][button_press.png] package com.xiets.swing; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Main { public static void main(String[] args) throws AWTException { JFrame jf = new JFrame("测试窗口"); jf.setSize(200, 200); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel = new JPanel(); final JButton btn = new JButton(); // 设置按钮的默认图片 btn.setIcon(new ImageIcon("button_normal.png")); // 设置按钮被点击时的图片 btn.setPressedIcon(new ImageIcon("button_press.png")); // 不绘制边框 btn.setBorderPainted(false); // 添加按钮点击事件监听器 btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("按钮被点击了"); } }); panel.add(btn); jf.setContentPane(panel); jf.setVisible(true); } } 结果展示: ![result\_02.gif][result_02.gif] 点击按钮,查看控制台输出。 -------------------- ![18975746.asp][] [http_blog.csdn.net_xietansheng_article_details_74363221]: http://blog.csdn.net/xietansheng/article/details/74363221 [Java Swing]: http://blog.csdn.net/xietansheng/article/details/72814492 [javax.swing.JButton]: https://docs.oracle.com/javase/8/docs/api/javax/swing/JButton.html [result_01.png]: /images/20210920/27c0676c698d4acc9be2bdd33146824b.png [button_normal.png]: https://img-blog.csdn.net/20170704233601413?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlldGFuc2hlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast [button_press.png]: /images/20210920/aa0144868fbc4cb6912ed081efdca4de.png [result_02.gif]: /images/20210920/9780ddf8f6454d9dbf07170b3a0b6e81.png [18975746.asp]: http://img.users.51.la/18975746.asp
还没有评论,来说两句吧...