GUI编程中的JButton组件,当鼠标移动到其上面时,按钮显示出边框,能否去掉? GUI编程中的JButton组件,当鼠标移动到其上面时,此JButton按钮会显示出边框(但愿我的表达够清楚,有点像是得到了焦点),能否去掉? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计无法在该类中作修改,因为外观是托管的,也就是在look and feel里面设计的,改那边的才有用。 如果只是希望不显示边框,我给你出个主意!写个累,extends JButton,然后重载其paint方法,方法内容完全copy自JComponent之中,只需要去掉其中两个调用paintBorder的地方即可,这样你的Border就完全画不出来了^_^ 要修改显示外观,有多种途径,并非只有laf一条路可走哦~ jButton.setUI(new BasicButtonUI()); setBorder(new EmptyBorder(0, 0, 0, 0)); setUI与setBorder完全不管用。修改paint方法,操作过程中出现大量的出错信息,本人无法解决,于是把paint方法中只加入一条打印语句,发现完全没有被调动。?其实本人是想编写一个小游戏的扫雷程序,把鼠标移动到按钮上,有个边框的话,那么跟windows里带的扫雷相差太多了呀。 不好意思,好像setBorder有点管用。本人的程序是把几行几列的按钮放在一个GridLayout布局管理器里,使用了setBorder后,横向的按钮之间倒是没问题,纵向的按钮之间没有边界了,还请zwgs1985(流氓狗) 大虾不吝赐教。 扫雷?那就是这效果了import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.BevelBorder;import javax.swing.border.CompoundBorder;import javax.swing.border.EmptyBorder;public class TestFrame extends JFrame { /** * */ private static final long serialVersionUID = -5312488161764152418L; public TestFrame() { super(); this.init(); } private void init() { JPanel panel = new JPanel(); JButton label = new JButton("button"); label.setBorder(new CompoundBorder(new EmptyBorder(0, 0, 0, 0), new BevelBorder(0))); panel.add(label); this.getContentPane().add(panel); } public static void main(String[] args) { TestFrame t = new TestFrame(); t.pack(); t.setVisible(true); t.setDefaultCloseOperation(EXIT_ON_CLOSE); }} zwgs1985(流氓狗)大虾,多谢!我的你的仰慕有如长江之水,连绵不绝,又有如黄河之水,泛滥成灾。其实用setBorder(new EmptyBorder(0, 0, 0, 0));就可以解决我的问题了。setBorder(null);效果也一样。在这里讲一下我的一点教训,我是在一个Frame中应用了一个GridLayout,然后再加上的JButton。之所以出现我在上文中提到的“横向的按钮之间倒是没问题,纵向的按钮之间没有边界”这个问题,是因为我给窗口增加了菜单,去掉菜单就没有这个问题了。也许我应该把JButton加到Panel里,然后再加到Frame里,这样大概没问题,还没有试呢。另外我实现扫雷的边框效果的方法是利用图像,而不是设置边框。在Windows里的扫雷程序中提取出图像的资源,然后应用到程序中的。 新建java project,从已存在的工程导入 问一个关于SCJP的题目 /(ㄒoㄒ)/~~各位大侠们,急求原因! 公司产品,JRE1.3升到JRE1.6,JTable不能用鼠标拖拉的方式多选了,请各位帮忙~ 关于eclipse3.2 如何动态的添加和删除控件? 各位大侠帮帮忙 jfreechart实现曲线图,怎么显示曲线上数据点的数据值?----急 文件的读取问题,急问! 本人写的一个软件,请大家给提提意见!! 关于组合和继承的问题 菜鸟送分题javascript httpclient 提交xml
写个累,extends JButton,然后重载其paint方法,方法内容完全copy自JComponent之中,只需要去掉其中两个调用paintBorder的地方即可,这样你的Border就完全画不出来了^_^
其实本人是想编写一个小游戏的扫雷程序,把鼠标移动到按钮上,有个边框的话,那么跟windows里带的扫雷相差太多了呀。
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;public class TestFrame extends JFrame { /**
*
*/
private static final long serialVersionUID = -5312488161764152418L; public TestFrame() {
super();
this.init();
} private void init() {
JPanel panel = new JPanel();
JButton label = new JButton("button");
label.setBorder(new CompoundBorder(new EmptyBorder(0, 0, 0, 0),
new BevelBorder(0)));
panel.add(label);
this.getContentPane().add(panel);
} public static void main(String[] args) {
TestFrame t = new TestFrame();
t.pack();
t.setVisible(true);
t.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
其实用setBorder(new EmptyBorder(0, 0, 0, 0));就可以解决我的问题了。setBorder(null);效果也一样。
在这里讲一下我的一点教训,我是在一个Frame中应用了一个GridLayout,然后再加上的JButton。之所以出现我在上文中提到的“横向的按钮之间倒是没问题,纵向的按钮之间没有边界”这个问题,是因为我给窗口增加了菜单,去掉菜单就没有这个问题了。也许我应该把JButton加到Panel里,然后再加到Frame里,这样大概没问题,还没有试呢。
另外我实现扫雷的边框效果的方法是利用图像,而不是设置边框。在Windows里的扫雷程序中提取出图像的资源,然后应用到程序中的。