我写了一个类,继承了JPanel类。
在上面画了一些图片,并放置了几个按钮。
现在我想把默认的按钮换成不规则形状,代码如下:
private JButton pp2 = new JButton("2");
private Shape shape = null;
构造函数中增加代码:
pp2.setBounds(50,600,60,60);
//lp是面板
lp.add(pp2);
//pp2为按钮
pp2.setContentAreaFilled(false);
增加方法:
public void paintBorder(Graphics g) {
//g.setColor(getForeground());
g.drawRoundRect(50, 600, 60, 60,60, 60);
}
public boolean contains(int x, int y) {
// 判断点(x,y)是否在按钮内
if (shape == null || !(shape.getBounds().equals(getBounds()))) {
shape = new RoundRectangle2D.Float(50, 600, 60, 60,
60, 60);
}
return shape.contains(x, y);
}这样我的确是画出了一个圆角按钮,但如何去掉外边四方的边框?
还有就是contains()方法使除了pp2外所有按钮都失效了?为什么会这样?
我如果想设置多个不规则按钮该如何写?
恳请高手能留个QQ,万分感谢!!!!
在上面画了一些图片,并放置了几个按钮。
现在我想把默认的按钮换成不规则形状,代码如下:
private JButton pp2 = new JButton("2");
private Shape shape = null;
构造函数中增加代码:
pp2.setBounds(50,600,60,60);
//lp是面板
lp.add(pp2);
//pp2为按钮
pp2.setContentAreaFilled(false);
增加方法:
public void paintBorder(Graphics g) {
//g.setColor(getForeground());
g.drawRoundRect(50, 600, 60, 60,60, 60);
}
public boolean contains(int x, int y) {
// 判断点(x,y)是否在按钮内
if (shape == null || !(shape.getBounds().equals(getBounds()))) {
shape = new RoundRectangle2D.Float(50, 600, 60, 60,
60, 60);
}
return shape.contains(x, y);
}这样我的确是画出了一个圆角按钮,但如何去掉外边四方的边框?
还有就是contains()方法使除了pp2外所有按钮都失效了?为什么会这样?
我如果想设置多个不规则按钮该如何写?
恳请高手能留个QQ,万分感谢!!!!
解决方案 »
- java 连接 ORACLE问题,No suitable driver found for jdbc异常
- JAVA 位运算符和逻辑运算符
- 急,模拟提交表单问题
- (高难度字符串处理)如何把如下字符串:“所困多幅#112哭诉大892”中的数字892提取出来
- 求一个从小到大快速排序整形数组的完整方法(代码)
- 静态初始化方法的代码超出 65535 字节限制
- :::::::怎样根据给定的url,将相应的html文件下载到本地???
- java中类初始化问题
- 请问如何在VJ或者JDK中开发的程序中,访问HTTP网络资源
- Parser无法接受中文文件名?
- 为什么用arraylist添加元素的时候说我使用了未经检查或不安全的操作
- 关于类的的属性的调用的问题
{
public MyBt(String name)
{
super(name);
this.setContentAreaFilled(false);
}
@Override
public void paintBorder(Graphics g)
{
g.setColor(java.awt.Color.BLACK);
g.fillRoundRect(0, 0, 90, 40,20, 20);
}
@Override
protected void paintComponent(Graphics g)
{
g.setColor(java.awt.Color.BLACK);
g.fillRoundRect(0, 0, 90, 40,20, 20);
super.paintComponent(g);
}
private Shape shape=null;
}在JFrame里:MyBt jb1=new MyBt("1");
jb1.setBounds(250, 250, 100, 40);
jb1.addActionListener
(
new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
javax.swing.JOptionPane.showMessageDialog(null, "button clicked "+((MyBt)e.getSource()).getText());
}
}
);