현재 제가 만들고있는 게임을위한 GUI를 만들고자하는데 문제가 생기기 시작합니다. 나는 어떤 이유에서든 타이머의 배경을 파란색으로 변경하고 gameGUI의 배경을 메인 보드에 녹색으로 표시 할 수 없습니다. 이것은 처음으로 스윙 프로그래밍 이었기 때문에이 모든 것을 처음 접했습니다.스윙 이슈에서 GUI 프로그래밍하기
나는 layeredpane 사용법에 대해 올바른 방향으로 가고 있는지 궁금합니다. 보드는 계층화 된 패널이 될 수 있어야 항상 이미지를 그 위에 놓을 수 있습니다. 타이머는 위에 태양이있는 하늘이 될 것이고, 구름은 어느 시점에서 태양의 꼭대기를 지나갈 것입니다.
팁을 줄 수 있고 길을 따라 나를 도울 수 있다면 여기저기서 몇 가지 작은 것들만 수정해도 좋을 것입니다.
감사합니다.
public class gameGUI extends JPanel{
private ArrayList<BufferedImage> nativeOne = new ArrayList<BufferedImage>();
private ArrayList<BufferedImage> nativeTwo = new ArrayList<BufferedImage>();
private ArrayList<BufferedImage> nativeThree = new ArrayList<BufferedImage>();
private ArrayList<BufferedImage> exoticOne = new ArrayList<BufferedImage>();
private ArrayList<BufferedImage> exoticTwo = new ArrayList<BufferedImage>();
private ArrayList<BufferedImage> exoticThree = new ArrayList<BufferedImage>();
private static int screenWidth = 680;
private static int screenHeight = 680;
private JLayeredPane layeredPane;
public gameGUI(){
layeredPane = new JLayeredPane();
layeredPane.setPreferredSize(new Dimension(680, 680));
layeredPane.setBackground(Color.GREEN);
layeredPane.setBorder(BorderFactory.createLineBorder(Color.BLACK,2));
}
private static JLayeredPane timer(){
JLayeredPane timer = new JLayeredPane();
timer.setPreferredSize(new Dimension(800,120));
timer.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
timer.setBackground(Color.BLUE);
return timer;
}
private static JPanel sideBar(){
//Create the side bar and add buttons
JPanel returnMofo = new JPanel();
JButton nativeOne = new JButton(native1);
JButton nativeTwo = new JButton(native2);
JButton nativeThree = new JButton(native3);
JButton exoticOne = new JButton(exotic1);
JButton exoticTwo = new JButton(exotic2);
JButton exoticThree = new JButton(exotic3);
returnMofo.setLayout(new GridLayout(6,1));
returnMofo.setPreferredSize(new Dimension(120, 680));
returnMofo.setBorder(BorderFactory.createLineBorder (Color.BLACK, 2));
returnMofo.add(nativeOne);
returnMofo.add(nativeTwo);
returnMofo.add(nativeThree);
returnMofo.add(exoticOne);
returnMofo.add(exoticTwo);
returnMofo.add(exoticThree);
return returnMofo;
}
private static void createAndShowGUI(){
JFrame frame = new JFrame();
frame.setTitle("Storm Watch");
frame.setSize(800, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameGUI gui = new gameGUI();
frame.add(timer(), BorderLayout.NORTH);
frame.add(sideBar(), BorderLayout.WEST);
frame.add(gui, BorderLayout.EAST);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args){
createAndShowGUI();
}
}
+1 코드 예제의 주석 및 "주의가있는 동안"비트 – Laf
감사합니다. 이것은 매우 도움이되었다 :) – Requiem
@Requiem 다행스럽게도 : D – MadProgrammer