从外部类设置JtoggleButton图标

时间:2019-05-12 13:19:46

标签: java swing jtogglebutton

我正在为一款小型战舰游戏构建GUI,但无法显示船只。

当前,我有一个GUI本身的类(包括第一个代码块),包括用于在按钮上设置图标的方法。当在其自己的main()中启动GUI时,它就像一种魅力,但是当我从另一个类调用此setWater()方法时,什么也没发生:/

我在控制台中打印了按钮并得到了: javax.swing.JToggleButton [,0,0,0x0,invalid,alignmentX = 0.0,...]

public class InterfaceGraphique extends JFrame implements ActionListener{

public int setWater(int I, int Bx, int By){

        butt[Bx][By].repaint();
        switch(I){
        case 1:
            ImageIcon water = new ImageIcon("images/water.jpg");
            Image water_img = water.getImage();
            water = new ImageIcon(water_img.getScaledInstance(grid_size, grid_size, Image.SCALE_DEFAULT));
            butt[Bx][By].setIcon(water);
            break;
        case 2:
            System.out.println("setWater check");
            water = new ImageIcon("images/ship_y1.png");
            Image water_img2 = water.getImage();
            water = new ImageIcon(water_img2.getScaledInstance(grid_size, grid_size, Image.SCALE_DEFAULT));
            System.out.println(butt[Bx][By]);
            butt[Bx][By].setIcon(water);
            break;
public class Bateaux extends InterfaceGraphique{
public void setCaseBateau(Orientation o){
        if (o == Orientation.Verticale){
            setWater(2, p1.x, p1.y);
            setWater(3, centre.x, centre.y);
            setWater(4, p2.x, p2.y);
        }
        else{
            setWater(5, p1.x, p1.y);
            setWater(6, centre.x, centre.y);
            setWater(7, p2.x, p2.y);
        }
        }

0 个答案:

没有答案