我正在为一款小型战舰游戏构建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);
}
}