当前位置: 代码迷 >> J2SE >> 怎么制作一个圆形按钮
  详细解决方案

怎么制作一个圆形按钮

热度:59   发布时间:2016-04-23 20:42:55.0
如何制作一个圆形按钮
JButton如何制作一个圆形按钮,然后跟其他按钮具有以下关系:相切、相交、分离,
然后生产一个由这些按钮生成的一个圆环,所有按钮都相切。
------解决方案--------------------
自己从JButton继承一个类,然后重写paint方法呗。
------解决方案--------------------
对的。楼上的。重新绘。
------解决方案--------------------

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Insets;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;

import cn.lin.images.getImg;

public class MyJButton extends JButton {
/**
 * 
 */
private static final long serialVersionUID = 2057428357783615691L;
private String text ="";

public MyJButton(Image moren,Image press,Image click) {
// TODO 自动生成的构造函数存根
super.paint(getGraphics());
setMargin(new Insets(0, 0, 0, 0));// 设置边距
setContentAreaFilled(false);// 不绘制按钮区域
setBorderPainted(false);// 不绘制边框
setIcon(new ImageIcon(moren));// 设置默认图片
setRolloverIcon(new ImageIcon(press));// 设置鼠标经过图片
setPressedIcon(new ImageIcon(click));// 设置鼠标按下图片
setBorder(null);
}

@Override
public void setText(String text) {
// TODO 自动生成的方法存根
this.text = text;
}

public void paint(Graphics g) {
// TODO 自动生成的方法存根
super.paint(g);
// g.drawOval(10, 10, 20, 20);
g.setColor(Color.BLACK);
g.setFont(new Font("迷你简黄草", Font.PLAIN, 22));
g.drawString(text, 22, 50);
}
}

这是一个自写的按钮类,你可以用一下、
------解决方案--------------------
继承楼上的Mybutton实现的一个关闭按钮
import java.awt.Image;
import java.io.IOException;

import javax.imageio.ImageIO;

import cn.lin.images.getImg;

public class GameExit extends MyJButton {


/**
 * 
 */
private static final long serialVersionUID = -6786787211433201501L;


public GameExit() throws IOException {
// TODO 自动生成的构造函数存根
super(ImageIO.read(getImg.class.getResource("exit/exit.png")), ImageIO
.read(getImg.class.getResource("exit/exit_move.png")), ImageIO
.read(getImg.class.getResource("exit/exit_click.png")));
}
}


------解决方案--------------------
传入图片为圆形、即可得图片效果
------解决方案--------------------
引用:
大家说的都是MyButton extends JButton 然后在按钮上画上图形,这没什么难度吧。
但是我题目的要求是
JButton如何制作一个圆形按钮,然后跟其他按钮具有以下关系:相切、相交、分离,
然后生产一个由这些按钮生成的一个圆环,所有按钮都相切。
按钮和另一个按钮有一个方法判定他两是否相切,一个方法实现他两相切并展示。


判断两个圆形相交、相切很难吗?

你只要有两个圆的圆心坐标和半径就可以了啊,只是初中的数学题啊。
只需判断((x1-x2)^2 + (y1-y2)^2)^(1/2)    和   r1+r2  的大小就行了。

------解决方案--------------------
引用:
Quote: 引用:

大家说的都是MyButton extends JButton 然后在按钮上画上图形,这没什么难度吧。
但是我题目的要求是
JButton如何制作一个圆形按钮,然后跟其他按钮具有以下关系:相切、相交、分离,
然后生产一个由这些按钮生成的一个圆环,所有按钮都相切。
按钮和另一个按钮有一个方法判定他两是否相切,一个方法实现他两相切并展示。


判断两个圆形相交、相切很难吗?

你只要有两个圆的圆心坐标和半径就可以了啊,只是初中的数学题啊。
只需判断((x1-x2)^2 + (y1-y2)^2)^(1/2)    和   r1+r2  的大小就行了。
顶一下
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

大家说的都是MyButton extends JButton 然后在按钮上画上图形,这没什么难度吧。
但是我题目的要求是
JButton如何制作一个圆形按钮,然后跟其他按钮具有以下关系:相切、相交、分离,
然后生产一个由这些按钮生成的一个圆环,所有按钮都相切。
按钮和另一个按钮有一个方法判定他两是否相切,一个方法实现他两相切并展示。


判断两个圆形相交、相切很难吗?

你只要有两个圆的圆心坐标和半径就可以了啊,只是初中的数学题啊。
只需判断((x1-x2)^2 + (y1-y2)^2)^(1/2)    和   r1+r2  的大小就行了。

好吧,如果你能在java中作出按钮(如图所示),没有JButton那个外面的方框。分全给你。


你如果做成多个按钮,那肯定是做不到的,但是你可以做成一个组件啊。鼠标点击在不同的区域(你可以通过计算是不是在圆圈内),显示不同的效果,执行不同的方法,对于用户看起来就像是很多个这样的按钮似的,对于java来说其实就是一个组件而已。
------解决方案--------------------
看书里说过,传入一个不规则的图形给按钮,可以通过设置按钮无填充,这样按钮就没有了外边框,显示的就是一个不规则的按钮。
------解决方案--------------------
每日6字正好
  相关解决方案