Guilherme Albuquerque
Acho que a solução mais simples seria bloquear o redimensionamento da tela com setResizable(false). Outra opção seria definir o minimumSize (com setMinimumSize() ) para 200,200. Assim, o usuário poderia aumentar a tela, inclusive maximizar, mas nunca deixá-la menor que 200x200.
Abraço.
E
entanglement
Outra forma é não usar uma fonte para desenhar o O ou o X (ou seja, não usar texto), mas desenhar o O ou o X dependendo do tamanho do botão.
Como são formas geométricas simples, o único problema é determinar a grossura do “stroke” usado para desenhar o X ou o O.
Guilherme_Albuquerqu
TerraSkilll:
Guilherme Albuquerque
Acho que a solução mais simples seria bloquear o redimensionamento da tela com setResizable(false). Outra opção seria definir o minimumSize (com setMinimumSize() ) para 200,200. Assim, o usuário poderia aumentar a tela, inclusive maximizar, mas nunca deixá-la menor que 200x200.
Abraço.
Ok, muito grato , agora é o seguinte, se você baixou o arquivo .jar no SkyDrive e jogou, deve ter percebido que quando alguém ou ninguém ganha, ele não inicia outra partida.
Segue abaixo o código-fonte:
packagejogo;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassJogodavelhaimplementsActionListener{//Instanciar VariáveisprivateJFramejanela=newJFrame("Jogo da Velha");privateJButtonbutton1=newJButton("");privateJButtonbutton2=newJButton("");privateJButtonbutton3=newJButton("");privateJButtonbutton4=newJButton("");privateJButtonbutton5=newJButton("");privateJButtonbutton6=newJButton("");privateJButtonbutton7=newJButton("");privateJButtonbutton8=newJButton("");privateJButtonbutton9=newJButton("");privateStringletter="";privateintcount=0;privatebooleanwin=false;publicJogodavelha(){//Criar Janela do Jogojanela.setResizable(false);janela.setSize(200,200);janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);janela.setLayout(newGridLayout(3,3));//Adicionar botões ao Jogojanela.add(button1);janela.add(button2);janela.add(button3);janela.add(button4);janela.add(button5);janela.add(button6);janela.add(button7);janela.add(button8);janela.add(button9);//Adicionar o ActionListener aos Botõesbutton1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);button6.addActionListener(this);button7.addActionListener(this);button8.addActionListener(this);button9.addActionListener(this);//Tornar a Janela do Jogo Visíveljanela.setVisible(true);}publicvoidactionPerformed(ActionEventa){count++;//Calcular de Quem é a Vezif(count==1||count==3||count==5||count==7||count==9){letter="x";}elseif(count==2||count==4||count==6||count==8||count==10){letter="o";}//Mostrar x ou o nos Botõesif(a.getSource()==button1){button1.setText(letter);button1.setEnabled(false);}elseif(a.getSource()==button2){button2.setText(letter);button2.setEnabled(false);}elseif(a.getSource()==button3){button3.setText(letter);button3.setEnabled(false);}elseif(a.getSource()==button4){button4.setText(letter);button4.setEnabled(false);}elseif(a.getSource()==button5){button5.setText(letter);button5.setEnabled(false);}elseif(a.getSource()==button6){button6.setText(letter);button6.setEnabled(false);}elseif(a.getSource()==button7){button7.setText(letter);button7.setEnabled(false);}elseif(a.getSource()==button8){button8.setText(letter);button8.setEnabled(false);}elseif(a.getSource()==button9){button9.setText(letter);button9.setEnabled(false);}//Determine Quem Ganhou//Ganhar na horizontalif(button1.getText()==button2.getText()&&button2.getText()==button3.getText()&&button1.getText()!=""){win=true;}elseif(button4.getText()==button5.getText()&&button5.getText()==button6.getText()&&button4.getText()!=""){win=true;}elseif(button7.getText()==button8.getText()&&button8.getText()==button9.getText()&&button7.getText()!=""){win=true;}//Ganhar na verticalelseif(button1.getText()==button4.getText()&&button4.getText()==button7.getText()&&button1.getText()!=""){win=true;}elseif(button2.getText()==button5.getText()&&button5.getText()==button8.getText()&&button2.getText()!=""){win=true;}elseif(button3.getText()==button6.getText()&&button6.getText()==button9.getText()&&button3.getText()!=""){win=true;}//Ganhar na diagonal elseif(button1.getText()==button5.getText()&&button5.getText()==button9.getText()&&button1.getText()!=""){win=true;}elseif(button3.getText()==button5.getText()&&button5.getText()==button7.getText()&&button3.getText()!=""){win=true;}else{win=false;}//Mostrar em JOptionPane como diálogo de mensagem se alguém ganhou ou se deu velhaif(win==true){JOptionPane.showMessageDialog(null,"O jogador de "+letter+" Ganhou!");}elseif(count==9&&win==false){JOptionPane.showMessageDialog(null,"Deu Velha!");}}publicstaticvoidmain(String[]args){newJogodavelha();}}//Fim da Classe Jogodavelha
Isto é, eu gostaria de iniciar outra partida quando o jogo fosse concluído (alguém ou ninguém ganhasse).
TerraSkilll
Você precisa de um método para reiniciar o jogo, oras!
Bacana, o Java tem uma solução lógica para cada problema, o que mostra que tem várias possibilidades, pra isso deve-se ter criatividade, certo?
Legal, agradeço :D
Mas, existe algo de errado com o NetBeans, ou sou eu (o que é mais fácil) porque, quando fiz isso, ele diz:
" expected
could not find symbol" eu detalho melhor abaixo:
publicvoidzerarJogo(){button1.setText("");button2.setText("");button3.setText("");button4.setText("");button5.setText("");button6.setText("");button7.setText("");button8.setText("");button9.setText("");}// se o jogo encerrar (com vitória ou empate), exibe a mensagem e zera os buttonsif(win==true){\\aquioNetBeansdiz"<identifier> expected"couldnotfindsymbol;JOptionPane.showMessageDialog(null,"O jogador de "+letter+" Ganhou!");zerarJogo();}elseif(count==9&&win==false){\\aquielediz<identifier>expected" could not find symbol; JOptionPane.showMessageDialog(null, "DeuVelha!"); zerarJogo(); } public static void main(String[] args){ new Jogodavelha(); }}
será melhor usar outro programa? Ou eu estou errado?