2016-04-22 2 views
0

Zuerst entschuldigen Sie die beschissene Formatierung Ich bin ziemlich neu in Java. Aber auf das Problem. Ich versuche ein gefährliches Spiel in Java zu machen und ich habe gerade angefangen. Ich kann nicht herausfinden, wie man die Informationen aus einem JTextfield abruft, wo die Benutzer ihre Namen eingeben (nachdem die "Start" -Schaltfläche gedrückt wurde) und diesen Text zum Ersetzen des JLabels "Player 1:" & "Players verwendet 2: "wenn sie den" Submit "Knopf drücken. Die Antwort scheint ziemlich einfach und doch kann ich nicht herausfinden, und es ist extrem frustrierend. Jede Hilfe wird geschätzt, danke!Scheint nicht, Text in einem Jtextfield eingegeben zu bekommen und diesen Text zu verwenden, um JLabels zu ersetzen, wenn die Schaltfläche "Submit" gedrückt wird

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

class JeopardyCulminating implements ActionListener 
{ 
    JLabel mConversion, ints, fAndR, variableExp, algebra; 
    JLabel playerScore, one, two; 
    JLabel jeopardyTitle; 
    JTextField player1, player2; 
    JButton h11, h21, h31, h41, h51; 
    JButton h12, h22, h32, h42, h52; 
    JButton h13, h23, h33, h43, h53; 
    JButton h14, h24, h34, h44, h54; 
    JButton h15, h25, h35, h45, h55; 
    JButton startButton; 
    JFrame frame; 
    String zero = "0", zero1 = "0"; 
    int playerCount = 2; 
    int scoreCounter = 0; 

    int score[][] = new int[playerCount][scoreCounter]; 
    String jokes[][] = new String[100][100]; 

    JeopardyCulminating() 
    { 
    // Setting the frame layout and setting the exit button 
    frame = new JFrame("GUI Jeopardy"); 
    frame.setLayout(new FlowLayout()); 
    frame.setSize(390,750); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

// Title label 
jeopardyTitle = new JLabel("Welcome to The Game of Jeopardy! 8th-9th Grade Math Edition!"); 
jeopardyTitle.setFont(new Font("Serif", Font.PLAIN, 14)); 

// Creating the category labels 
mConversion = new JLabel("<html>Measurement<br>Conversion</html>"); 
ints = new JLabel("Integers"); 
fAndR = new JLabel("<html>Fractions<br>& Rationals</html>"); 
variableExp = new JLabel("<html>Variable<br>Expressions</html>"); 
algebra = new JLabel("Algebra"); 

// JTextField keeping track of score 
player1 = new JTextField(7); 
player2 = new JTextField(7); 
player1.addActionListener(this); 
player1.setEditable(false); 
player1.setText(zero); 
player2.addActionListener(this); 
player2.setEditable(false); 
player2.setText(zero1); 

// Score Labels 
playerScore = new JLabel("Score:"); 
one = new JLabel("Player 1:"); 
two = new JLabel("Player 2:"); 

// Start Menu 
startButton = new JButton("Start"); 
startButton.addActionListener(this); 

// First column buttons 
h11 = new JButton("$100a"); 
h11.addActionListener(this); 
h11.setEnabled(false); 
h21 = new JButton("$200a"); 
h21.addActionListener(this); 
h21.setEnabled(false); 
h31 = new JButton("$300a"); 
h31.addActionListener(this); 
h31.setEnabled(false); 
h41 = new JButton("$400a"); 
h41.addActionListener(this); 
h41.setEnabled(false); 
h51 = new JButton("$500a"); 
h51.addActionListener(this); 
h51.setEnabled(false); 

// Second column buttons 
h12 = new JButton("$100b"); 
h12.addActionListener(this); 
h12.setEnabled(false); 
h22 = new JButton("$200b"); 
h22.addActionListener(this); 
h22.setEnabled(false); 
h32 = new JButton("$300b"); 
h32.addActionListener(this); 
h32.setEnabled(false); 
h42 = new JButton("$400b"); 
h42.addActionListener(this); 
h42.setEnabled(false); 
h52 = new JButton("$500b"); 
h52.addActionListener(this); 
h52.setEnabled(false); 

// Third column buttons 
h13 = new JButton("$100c"); 
h13.addActionListener(this); 
h13.setEnabled(false); 
h23 = new JButton("$200c"); 
h23.addActionListener(this); 
h23.setEnabled(false); 
h33 = new JButton("$300c"); 
h33.addActionListener(this); 
h33.setEnabled(false); 
h43 = new JButton("$400c"); 
h43.addActionListener(this); 
h43.setEnabled(false); 
h53 = new JButton("$500c"); 
h53.addActionListener(this); 
h53.setEnabled(false); 

// Fourth column buttons 
h14 = new JButton("$100d"); 
h14.addActionListener(this); 
h14.setEnabled(false); 
h24 = new JButton("$200d"); 
h24.addActionListener(this); 
h24.setEnabled(false); 
h34 = new JButton("$300d"); 
h34.addActionListener(this); 
h34.setEnabled(false); 
h44= new JButton("$400d"); 
h44.addActionListener(this); 
h44.setEnabled(false); 
h54 = new JButton("$500d"); 
h54.addActionListener(this); 
h54.setEnabled(false); 

// Fifth column buttons 
h15 = new JButton("$100e"); 
h15.addActionListener(this); 
h15.setEnabled(false); 
h25 = new JButton("$200e"); 
h25.addActionListener(this); 
h25.setEnabled(false); 
h35 = new JButton("$300e"); 
h35.addActionListener(this); 
h35.setEnabled(false); 
h45 = new JButton("$400e"); 
h45.addActionListener(this); 
h45.setEnabled(false); 
h55 = new JButton("$500e"); 
h55.addActionListener(this); 
h55.setEnabled(false); 

frame.add(jeopardyTitle); 
frame.add(mConversion); 
frame.add(ints); 
frame.add(fAndR); 
frame.add(variableExp); 
frame.add(algebra); 
frame.add(h11); 
frame.add(h12); 
frame.add(h13); 
frame.add(h14); 
frame.add(h15); 
frame.add(h21); 
frame.add(h22); 
frame.add(h23); 
frame.add(h24); 
frame.add(h25); 
frame.add(h31); 
frame.add(h32); 
frame.add(h33); 
frame.add(h34);  
frame.add(h35);  
frame.add(h41);   
frame.add(h42);   
frame.add(h43);   
frame.add(h44);   
frame.add(h45);   
frame.add(h51);   
frame.add(h52);   
frame.add(h53); 
frame.add(h54);   
frame.add(h55); 
frame.add(playerScore); 
frame.add(one); 
frame.add(player1); 
frame.add(two); 
frame.add(player2); 
frame.add(startButton); 
frame.setVisible(true); 
} 

// the problem is here: 
public void actionPerformed(ActionEvent ae) 
{ 
    if(ae.getActionCommand().equals("Start")) 
    { 
    startButton.setVisible(false); 

    JLabel rules = new JLabel("Rules & How to Play:"); 
    JLabel rules1 = new JLabel("*rules here*"); 

    JLabel names = new JLabel("Enter player names: "); 
    JLabel player1 = new JLabel("Enter player 1's name:"); 
    JLabel player2 = new JLabel("Enter player 2's name:"); 

    JTextField playerName1 = new JTextField(15); 
    JTextField playerName2 = new JTextField(15); 
    playerName1.addActionListener(this); 
    playerName2.addActionListener(this); 

    JButton submitName = new JButton("Submit"); 
    submitName.addActionListener(this); 

    frame.add(rules); 
    frame.add(rules1); 
    frame.add(names); 
    frame.add(player1); 
    frame.add(playerName1); 
    frame.add(player2); 
    frame.add(playerName2); 
    frame.add(submitName); 
    } 

    if(ae.getActionCommand().equals("Submit")) 
    { 
     h11.setEnabled(true); 
     h21.setEnabled(true); 
     h31.setEnabled(true); 
     h41.setEnabled(true); 
     h51.setEnabled(true); 
     h12.setEnabled(true); 
     h22.setEnabled(true); 
     h32.setEnabled(true); 
     h42.setEnabled(true); 
     h52.setEnabled(true); 
     h13.setEnabled(true); 
     h23.setEnabled(true); 
     h33.setEnabled(true); 
     h43.setEnabled(true); 
     h53.setEnabled(true); 
     h14.setEnabled(true); 
     h24.setEnabled(true); 
     h34.setEnabled(true); 
     h44.setEnabled(true); 
     h54.setEnabled(true); 
     h15.setEnabled(true); 
     h25.setEnabled(true); 
     h35.setEnabled(true); 
     h45.setEnabled(true); 
     h55.setEnabled(true); 

     jokes[0][0] = playerName1.getText(); 
     jokes[0][1] = playerName2.getText(); 
     one.setText(playerName1.getText()); 
     two.setText(playerName2.getText()); 
    } 
}  

public static void main(String args[])  
{  
    SwingUtilities.invokeLater(new Runnable(){ 
    public void run(){ 
     new JeopardyCulminating();  
    } 
    });  
    }  
} 

Antwort

0

Sie können dies tun:

submitName.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent e) 
     { 
      //Execute when button is pressed 
        one.setText(playerName1.getText()); 
        two.setText(playerName2.getText()); 
     } 
    }); 

wird viel einfacher und klarer, was geschieht, wenn submitName Taste gedrückt wird.

Es ist auch eine gute Praxis, alle Ihre Spalten- und Zeilenschaltflächen in eine Liste zu setzen und dann einfach zu durchlaufen, wenn Sie Operationen auf ihnen erstellen möchten, wie das Hinzufügen zu einem Rahmen oder das Aktivieren, es sieht besser aus und es ist einfacher lesen.

Goodluck

+0

Vielen Dank! Ich werde versuchen, dies in meinen Code zu implementieren, wenn ich heute eine Chance bekomme, ich bin neu in Java, also könnte ich Schwierigkeiten haben, aber ich werde es herausfinden. Danke noch einmal! – Liam

Verwandte Themen