Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 图像不重叠按钮_Java_Image_Button - Fatal编程技术网

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宽的图像覆盖那个按钮点击那个按钮实际上我在做扫雷游戏…我想要按钮变成图像,一旦一个按钮变成图像…那个图像看起来不错。不客气。如果问题解决了,请通过勾选绿色右标记接受帖子来关闭线程。