import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Gui extends JFrame implements ActionListener { private Container pane; private JButton exitButton; private JPanel canvas, buttonsBorder; private int[][] board = new int[6][7]; private Container buttons,buttons2; private JButton b1,b2,b3,b4,b5,b6,b7; private boolean turn = true; private class myKeyListener implements KeyListener { public void keyPressed(KeyEvent e) { System.out.println("button"); //fill in some box } public void keyTyped(KeyEvent e) { System.out.println("potato"); } public void keyReleased(KeyEvent e) { System.out.println("RELEASED: " + e.getKeyChar()+ " - "+ e.getKeyCode()); } } public void actionPerformed(ActionEvent e) { if (e.getSource() == exitButton) { System.exit(0); }else{ buttonAct(e.getSource(), ((JButton) e.getSource()).getText()); } } public void buttonAct(Object jb, String t){ int p; if (turn) p = 1; else p = 2; System.out.println("player " + p + " picked column " + t); int x = Integer.parseInt(t); int i = 0; boolean done = false; while (i < 6 && !done){ if (board[i][x] == 0){ if (turn){ board[i][x] = 1; done = true; } else{ board[i][x] = 2; done = true; } } else i++; } if (done) turn = !turn; else System.out.println("Invalid move. Column full."); } public Gui() { this.setTitle("My first GUI"); this.setSize(700,700); this.setLocation(0,0); this.setDefaultCloseOperation(EXIT_ON_CLOSE); pane = this.getContentPane(); pane.setLayout(new BorderLayout()); exitButton = new JButton("Exit"); canvas = new JPanel(); canvas.setBorder(BorderFactory.createLineBorder(Color.blue,5)); canvas.setLayout(new GridLayout(6,7)); board = new int[6][7]; b1= new JButton("1"); b2= new JButton("2"); b3= new JButton("3"); b4= new JButton("4"); b5= new JButton("5"); b6= new JButton("6"); b7= new JButton("7"); buttons = new Container(); buttons.setLayout(new GridLayout(1,1)); buttons.add(exitButton); buttonsBorder = new JPanel(); buttonsBorder.setBorder(BorderFactory.createLineBorder(Color.blue,5)); buttonsBorder.setLayout(new GridLayout(1,1)); buttons2 = new Container(); buttons2.setLayout(new GridLayout(1,7)); buttons2.add(b1); buttons2.add(b2); buttons2.add(b3); buttons2.add(b4); buttons2.add(b5); buttons2.add(b6); buttons2.add(b7); buttonsBorder.add(buttons2); pane.add(buttons,BorderLayout.PAGE_START); pane.add(canvas,BorderLayout.CENTER); pane.add(buttonsBorder,BorderLayout.PAGE_END); for (int[] panels:board) { for (int panel:panels) { JPanel jpanel = new JPanel(); jpanel.setBorder(BorderFactory.createLineBorder(Color.yellow,2)); canvas.add(jpanel); } } exitButton.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); } public static void main(String[] args) { Gui g = new Gui(); g.setVisible(true); } }