webForumDet fria alternativet

Öppna en ny Jframe med knapp

1 svar · 478 visningar · startad av Tulork

TulorkMedlem sedan aug. 2004903 inlägg
#1

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){
				
		
				
				 
					
				}
		

         }
      }

   }
TulorkMedlem sedan aug. 2004903 inlägg
#2

Löst det själv. hade inte konfigurerat knappen ordentligt...

127 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)