import javax.swing.*; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Rutenett { public static void main(String[] args) { JFrame frame = new JFrame("Rutenett"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); GridLayout layout = new GridLayout(3, 3); JPanel panel = new JPanel(layout); frame.add(panel); for (int i = 0; i < 9; i++) { panel.add(new Knapp()); } frame.pack(); frame.setVisible(true); } } class Knapp extends JButton { static int teller = 0; class Trykk implements ActionListener { @Override public void actionPerformed(ActionEvent e) { teller++; if (teller % 2 == 0) { setText("O"); } else { setText("X"); } } } Knapp() { setText(""); addActionListener(new Trykk()); } }