Note that there are some explanatory texts on larger screens.

plurals
  1. POTic Tac Toe button colors
    primarykey
    data
    text
    <p>I have been updating a somewhat outdated tic tac toe code I found online (Like it actually works now :P) I have it nearly complete but I keep having one same problem. The 3x3 buttons inside the tic tac toe board work perfectly,except for one thing, the color after they are clicked is always the background, I have made attempts to correct this but all it does is make the buttons not change color at all. The two colors are red and green and I would like it so that when each player clicks a button it changes to their color.</p> <p>The main game code:</p> <pre><code>import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TicTacToeGame extends JFrame implements ActionListener { JLabel l1; JLabel p1namel; JLabel p2namel; JLabel l3; JButton b1; JButton b2; JButton b3; JButton b4; JButton b5; JButton b6; JButton b7; JButton b8; JButton b9; int b1ctr = 1 ,b2ctr = 2 ,b3ctr = 3 ,b4ctr = 4, b5ctr = 5, b6ctr = 6, b7ctr = 7, b8ctr = 8, b9ctr = 9; Font textfont = new Font( "Serif", Font.PLAIN,70 ); int ctr = 1; String p1name,p2name; public TicTacToeGame(String p1,String p2) { TicTacToeGameLayout customLayout = new TicTacToeGameLayout(); getContentPane().setFont(new Font("Helvetica", Font.PLAIN, 12)); getContentPane().setLayout(customLayout); getContentPane().setBackground(Color.CYAN); l1 = new JLabel(""); getContentPane().add(l1); p1name = p1; p2name = p2; p1namel = new JLabel(""); p1namel.setText(p1); p1namel.setFont(textfont); p1namel.setForeground(Color.RED); getContentPane().add(p1namel); p2namel = new JLabel(""); p2namel.setText(p2); p2namel.setForeground(Color.GREEN); p2namel.setFont(textfont); getContentPane().add(p2namel); l3 = new JLabel("&lt;-&gt;"); l3.setFont(textfont); getContentPane().add(l3); b1 = new JButton(""); getContentPane().add(b1); b2 = new JButton(""); getContentPane().add(b2); b3 = new JButton(""); getContentPane().add(b3); b4 = new JButton(""); getContentPane().add(b4); b5 = new JButton(""); getContentPane().add(b5); b6 = new JButton(""); getContentPane().add(b6); b7 = new JButton(""); getContentPane().add(b7); b8 = new JButton(""); getContentPane().add(b8); b9 = new JButton(""); getContentPane().add(b9); l3.setForeground(Color.WHITE); b1.setFont(textfont); b2.setFont(textfont); b3.setFont(textfont); b4.setFont(textfont); b5.setFont(textfont); b6.setFont(textfont); b7.setFont(textfont); b8.setFont(textfont); b9.setFont(textfont); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); setSize(getPreferredSize()); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void actionPerformed(ActionEvent ae) { if (ctr % 2 == 1) { if(ae.getSource() == b1) { b1ctr = 0; b1.setEnabled(false); b1.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b2) { b2ctr = 0; b2.setEnabled(false); b2.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b3) { b3ctr = 0; b3.setEnabled(false); b3.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b4) { b4ctr = 0; b4.setEnabled(false); b4.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b5) { b5ctr = 0; b5.setEnabled(false); b5.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b6) { b6ctr = 0; b6.setEnabled(false); b6.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b7) { b7ctr = 0; b7.setEnabled(false); b7.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b8) { b8ctr = 0; b8.setEnabled(false); b8.setBackground(Color.GREEN); winnerfind(); ctr++; } else if (ae.getSource() == b9) { b9ctr = 0; b9.setEnabled(false); b9.setBackground(Color.GREEN); winnerfind(); ctr++; } } else if (ctr % 2 != 1) { if(ae.getSource() == b1) { b1ctr = 1; b1.setEnabled(false); b1.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b2) { b2ctr = 1; b2.setEnabled(false); b2.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b3) { b3ctr = 1; b3.setEnabled(false); b3.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b4) { b4ctr = 1; b4.setEnabled(false); b4.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b5) { b5ctr = 1; b5.setEnabled(false); b5.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b6) { b6ctr = 1; b6.setEnabled(false); b6.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b7) { b7ctr = 1; b7.setEnabled(false); b7.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b8) { b8ctr = 1; b8.setEnabled(false); b8.setBackground(Color.YELLOW); winnerfind1(); ctr++; } else if (ae.getSource() == b9) { b9ctr = 1; b9.setEnabled(false); b9.setBackground(Color.YELLOW); winnerfind1(); ctr++; } } } public void winnerfind() { if ((b1ctr == 0 &amp;&amp; b2ctr == 0 &amp;&amp; b3ctr == 0) || (b1ctr == 0 &amp;&amp; b4ctr == 0 &amp;&amp; b7ctr == 0) || (b2ctr == 0 &amp;&amp; b5ctr == 0 &amp;&amp; b8ctr == 0) || (b3ctr == 0 &amp;&amp; b6ctr == 0 &amp;&amp; b9ctr == 0) || (b4ctr == 0 &amp;&amp; b5ctr == 0 &amp;&amp; b6ctr == 0) || (b7ctr == 0 &amp;&amp; b8ctr == 0 &amp;&amp; b9ctr == 0) || (b1ctr == 0 &amp;&amp; b5ctr == 0 &amp;&amp; b9ctr == 0) || (b3ctr == 0 &amp;&amp; b5ctr == 0 &amp;&amp; b7ctr == 0)) { JOptionPane.showMessageDialog(null,""+p1name+" is the winner!"); } } public void winnerfind1() { if ((b1ctr == 1 &amp;&amp; b2ctr == 1 &amp;&amp; b3ctr == 1) || (b1ctr == 1 &amp;&amp; b4ctr == 1 &amp;&amp; b7ctr == 1) || (b2ctr == 1 &amp;&amp; b5ctr == 1 &amp;&amp; b8ctr == 1) || (b3ctr == 1 &amp;&amp; b6ctr == 1 &amp;&amp; b9ctr == 1) || (b4ctr == 1 &amp;&amp; b5ctr == 1 &amp;&amp; b6ctr == 1) || (b7ctr == 1 &amp;&amp; b8ctr == 1 &amp;&amp; b9ctr == 1) || (b1ctr == 1 &amp;&amp; b5ctr == 1 &amp;&amp; b9ctr == 1) || (b3ctr == 1 &amp;&amp; b5ctr == 1 &amp;&amp; b7ctr == 1)) { JOptionPane.showMessageDialog(null,""+p2name+" is victorious!"); } } } class TicTacToeGameLayout implements LayoutManager { public TicTacToeGameLayout() { } public void addLayoutComponent(String name, Component comp) { } public void removeLayoutComponent(Component comp) { } public Dimension preferredLayoutSize(Container parent) { Dimension dim = new Dimension(0, 0); Insets insets = parent.getInsets(); dim.width = 719 + insets.left + insets.right; dim.height = 455 + insets.top + insets.bottom; return dim; } public Dimension minimumLayoutSize(Container parent) { Dimension dim = new Dimension(0, 0); return dim; } public void layoutContainer(Container parent) { Insets insets = parent.getInsets(); Component c; c = parent.getComponent(0); if (c.isVisible()) {c.setBounds(insets.left+0,insets.top+64,720,8);} c = parent.getComponent(1); if (c.isVisible()) {c.setBounds(insets.left+16,insets.top+8,428,80);} c = parent.getComponent(2); if (c.isVisible()) {c.setBounds(insets.left+472,insets.top+8,528,80);} c = parent.getComponent(3); if (c.isVisible()) {c.setBounds(insets.left+300,insets.top+8,150,80);} c = parent.getComponent(4); if (c.isVisible()) {c.setBounds(insets.left+176,insets.top+112,120,104);} c = parent.getComponent(5); if (c.isVisible()) {c.setBounds(insets.left+296,insets.top+112,112,104);} c = parent.getComponent(6); if (c.isVisible()) {c.setBounds(insets.left+408,insets.top+112,120,104);} c = parent.getComponent(7); if (c.isVisible()) {c.setBounds(insets.left+176,insets.top+216,120,96);} c = parent.getComponent(8); if (c.isVisible()) {c.setBounds(insets.left+296,insets.top+216,112,96);} c = parent.getComponent(9); if (c.isVisible()) {c.setBounds(insets.left+408,insets.top+216,120,96);} c = parent.getComponent(10); if (c.isVisible()) {c.setBounds(insets.left+176,insets.top+312,120,104);} c = parent.getComponent(11); if (c.isVisible()) {c.setBounds(insets.left+296,insets.top+312,112,104);} c = parent.getComponent(12); if (c.isVisible()) {c.setBounds(insets.left+408,insets.top+312,120,104);} } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload