图像不重叠按钮

时间:2014-07-13 10:18:47

标签: 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() {

        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();
    }
}

2 个答案:

答案 0 :(得分:0)

在按钮上设置图像可以按如下方式进行:

Button myButton = new Button(new ImageIcon("image_path"));

答案 1 :(得分:0)

我已经在您的last post中与您分享了相关代码,我建议您使用示例代码向您提出一些要点,以便使用JLabel来实现此目标。

Read more points...


不要使用null布局。有许多布局管理器根据您的应用程序设计选择任何适合的布局管理器。

How to Use Various Layout Managers

来自以下评论:

  

实际上我正在制作扫雷类型的游戏......我希望按钮变成图像,一旦一个按钮转换为图像......那个图像就在那里。

使用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);

快照:

enter image description here