Java 图像不重叠按钮
我想重叠按钮上的图像(当它被点击时)…但点击时它不重叠…请告诉我哪里我错了…这是不可能的吗??? 我正在使用框架添加按钮Java 图像不重叠按钮,java,image,button,Java,Image,Button,我想重叠按钮上的图像(当它被点击时)…但点击时它不重叠…请告诉我哪里我错了…这是不可能的吗??? 我正在使用框架添加按钮 import java.awt.*; import java.awt.event.*; public class d extends Frame implements ActionListener { Image img, i1, i2; int x, y; String msg; Button one, two; d() {
import java.awt.*;
import java.awt.event.*;
public class d extends Frame implements ActionListener {
Image img, i1, i2;
int x, y;
String msg;
Button one, two;
d() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setSize(1000, 500);
setVisible(true);
setLayout(null);
one = new Button("1");
two = new Button("2");
add(one);
add(two);
one.addActionListener(this);
two.addActionListener(this);
one.setBounds(200, 100, 100, 100);
two.setBounds(300, 100, 100, 100);
}
public void actionPerformed(ActionEvent e) {
msg = e.getActionCommand();
if (msg.equals("1")) {
msg = "Pressed 1";
img = i1;
x = 200;
y = 100;
} else {
msg = "Pressed 2";
img = i2;
x = 300;
y = 100;
}
repaint();
}
public void paint(Graphics g) {
Toolkit tool = Toolkit.getDefaultToolkit();
i1 = tool.getImage("F:/Memories/rawk garden/a.jpg");
i2 = tool.getImage("F:/Memories/rawk garden/b.jpg");
g.drawImage(img, x, y, 100, 100, this);
g.drawString(msg, 100, 300);
}
public static void main(String s[]) {
new d();
}
}
在按钮上设置图像可以按如下方式进行:
Button myButton = new Button(new ImageIcon("image_path"));
我已经在您的中与您分享了这方面的代码,我建议您使用
JLabel
实现示例代码的一些要点
不要使用
null
布局。有许多布局管理器根据您的应用程序设计选择适合您的布局管理器
根据以下评论:
实际上我正在制作扫雷舰类型的游戏…我想把按钮变成图像,一旦一个按钮变成了图像…图像就保留在那里
使用JButton#setIcon()
方法设置按钮的图标
下面是示例代码,其中
- 我创建了一个包含按钮的9x9网格
- 每个单元格都有一个随机布尔标志,无论它是否有我的李>
- 当按钮被点击时,我正在设置它的图标,如果它有我的李>
- 只需将文本设置为空并将其禁用,即可停止对已单击按钮的进一步单击
final Image mine = ImageIO.read(new File("resources/mine.png"));
final boolean[][] showMine = new boolean[9][9];
Random random = new Random();
JPanel panel = new JPanel(new GridLayout(9, 9));
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
showMine[i][j] = random.nextBoolean();
final int x = i;
final int y = j;
final JButton button = new JButton();
button.setText(String.valueOf(i * 9 + j));
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setEnabled(false);
button.setText("");
if (showMine[x][y]) {
button.setDisabledIcon(new ImageIcon(mine));
}
}
});
panel.add(button);
}
}
add(panel);
final Image mine=ImageIO.read(新文件(“resources/mine.png”);
最终布尔值[][]showMine=新布尔值[9][9];
随机=新随机();
JPanel面板=新JPanel(新网格布局(9,9));
对于(int i=0;i<9;i++){
对于(int j=0;j<9;j++){
showMine[i][j]=random.nextBoolean();
最终整数x=i;
最终int y=j;
最终JButton按钮=新JButton();
button.setText(String.valueOf(i*9+j));
addActionListener(新建ActionListener()){
@凌驾
已执行的公共无效操作(操作事件e){
按钮。设置启用(错误);
按钮。setText(“”);
if(showMine[x][y]){
按钮。设置禁用图标(新图像图标(我的));
}
}
});
面板。添加(按钮);
}
}
添加(面板);
快照:
您想做什么?你想要一个图像按钮,还是想要在点击按钮时绘制图像并隐藏按钮?我想要在点击按钮时绘制图像并隐藏按钮…plz帮助@Brajyou想要隐藏两个按钮或仅隐藏单击的按钮。仅隐藏单击的按钮…另一个按钮应仅保留为按钮,并在单击@Brajiam时替换为图像无法运行此代码…第二行“添加(jlabel)”显示错误“jlabel无法解析为键入”…请指导。。!!这不是一个完整的代码。只需将代码粘贴到类构造函数中。谢谢…它正在工作…但图像不是重叠按钮…我希望图像重叠按钮…也就是说,就像我有一个100高100宽的按钮…我想要一个100高100宽的图像覆盖那个按钮点击那个按钮实际上我在做扫雷游戏…我想要按钮变成图像,一旦一个按钮变成图像…那个图像看起来不错。不客气。如果问题解决了,请通过勾选绿色右标记接受帖子来关闭线程。