Har lite problemmed Jframes...
Det jag vill ska hända är att ett nytt Jframe fönster öppnar sig när man trycker på knappen "starta spel"
Har försökt en hel del med setVisible utan framgång.. Några tips på hur man skulle kunna lösa problemet? Att starta två paneler samtidit är inga problem.
YatziSpel.java
import javax.swing.JFrame;
public class YatzySpel
{
//----------------------------------------------
// Creates the main program frame.
//----------------------------------------------
public static void main(String[] args)
{
JFrame frame = new JFrame("Yatzy");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new YatzyStartPanel());
frame.pack();
frame.setVisible(true);
while {
JFrame frame2 = new JFrame("hej");
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.getContentPane().add(new YatzyStartPanel2());
frame2.pack();
frame2.setVisible(false);
}
}
YatzyStartPanel.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JOptionPane;
public class YatzyStartPanel extends JPanel
{
private JLabel labelHeader;
private JButton addPlayer;
protected JLabel[] labelAdd = new JLabel[6];
// private String utskriftSpelare; //för att skriva ut spelarna
protected String[] spelare = new String[5];
// private JLabel labelStart;
private JButton start;
private JButton hoho;
private String inputName;
private int plats = 0; //håller reda på antal spelare
//----------------------------------------------
// Constructor: Sets up the GUI.
//----------------------------------------------
public YatzyStartPanel()
{
//för att nollställa alla fält i arrayen
for (int i=0;i<5;i++){
spelare[i] = ""; //för utskriftens skull
}
setLayout(new GridLayout(4,2));
addPlayer = new JButton("Lägg till spelare");
start = new JButton("Starta Spelet");
addPlayer.addActionListener(new KnappEvent());
labelAdd[0] = new JLabel("Spelare:");
//för att nollställa alla arrayplatser
for(int count = 1; count < 6; count++){
labelAdd[count] = new JLabel("PlayerSlot" );
}
labelHeader = new JLabel ("YATZY");
//add(labelHeader);
for(int i=0; i<6;i++){
add(labelAdd[i]);
}
add(addPlayer);
add(start);
setPreferredSize(new Dimension(400, 400));
setBackground(Color.cyan);
}
//***************************************************
// Represents a listener for button push (action) events
//***************************************************
private class KnappEvent implements ActionListener
{
//----------------------------------------------
// Updates the appropriate vote counter when a
// button is pushed for one of the candidates.
//----------------------------------------------
public void actionPerformed(ActionEvent event)
{
if (event.getSource() == addPlayer){
if(plats < 5){
inputName = JOptionPane.showInputDialog ("Name: ");
spelare[plats] = inputName;
//skriver ut spelarna... OBS, bör snyggas till på annat sätt!!!
for(int count = plats; count < plats+1; count++){
labelAdd[count+1].setText(spelare[plats]);
}
plats++;
}
}
if (event.getSource() == start){
}
}
}
}