webForumDet fria alternativet

Öppna en ny Jframe med knapp

Java

1 svar · 478 visningar · startad av Tulork

Medlem sedan aug. 2004903 inlägg
Frågan#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){
				
		
				
				 
					
				}
		

         }
      }

   }
Medlem sedan aug. 2004903 inlägg
#2

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

252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)