java-Hangman中的GUI问题
我试图用java制作一个使用JPanel和标签的刽子手游戏,但是我很难让我所有的面板都显示出来。我必须在文本字段下面的面板中绘制绞刑架,但是当我运行代码时,文本字段占据了整个GUI,根本不显示我的图形。如果有人能帮忙,那就太好了。这是我的密码java-Hangman中的GUI问题,java,Java,我试图用java制作一个使用JPanel和标签的刽子手游戏,但是我很难让我所有的面板都显示出来。我必须在文本字段下面的面板中绘制绞刑架,但是当我运行代码时,文本字段占据了整个GUI,根本不显示我的图形。如果有人能帮忙,那就太好了。这是我的密码 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.ut
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class GameMaker extends JFrame {
private JLabel label;
private JButton button;
private JButton button1;
private JLabel wordLabel = new JLabel("Word to Guess");
private JTextField text = new JTextField(5);
private JPanel wordPanel = new JPanel();
private JPanel displayPanel = new JPanel();
private JPanel renameThisField;
private Random random = new Random();
private String[] guesses = {"Brendan", "Vaughn", "Josh"};
private char[] randomWordToGuess =
guesses[random.nextInt(guesses.length)].toCharArray();
private int amountOfGuesses = randomWordToGuess.length;
private char[] playerGuess = new char[amountOfGuesses];
private Graphics g;
public GameMaker(){
createComponents();
}
public void createComponents(){
boolean wordIsGuessed = false;
int tries = 0;
for (int i = 0; i<playerGuess.length; i++){
playerGuess[i] = ' ';
printArray(playerGuess);
}
JLabel wordToGuessLabelBlank = new JLabel("_ _ _ _ _ _ _");
button = new JButton("Submit Letter");
ActionListener listener = new SubmitLetter();
button.addActionListener(listener);
button1 = new JButton("adasdasd");
ActionListener listener1 = new SubmitLetter();
button1.addActionListener(listener1);
label = new JLabel();
JLabel wordLength = new JLabel("The word to Guess is " + playerGuess.toString() +
"letters long.");
JPanel panel = new JPanel();
final int FIELD_WIDTH = 1;
final JTextField rateField = new JTextField(FIELD_WIDTH);
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
panel.add(wordLabel);
panel.add(wordToGuessLabelBlank);
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
panel.add(wordLength);
panel.add(rateField);
JComponent component = new BodyComponent();
panel.add(component);
panel.add(button);
panel.add(label);
add(panel);
}
public void printArray(char[] array){
for(int i = 0; i < array.length; i++){
System.out.println(array[i] + " ");
}
}
public class SubmitLetter implements ActionListener
{
public void actionPerformed(ActionEvent event){
}
/*This is where the magic happens.
* increment the numClicks and display results
*/
}
}
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.Random;
公共类GameMaker扩展了JFrame{
私人标签;
私人按钮;
私人按钮1;
私有JLabel wordLabel=新JLabel(“单词猜测”);
私有JTextField text=新JTextField(5);
private JPanel wordPanel=new JPanel();
private JPanel displayPanel=new JPanel();
private JPanel renameThisField;
私有随机=新随机();
私有字符串[]猜测={“Brendan”、“Vaughn”、“Josh”};
private char[]randomWordToGuess=
猜测[random.nextInt(guesss.length)].toCharArray();
private int amountofguesss=randomWordToguesss.length;
私有字符[]playerGuess=新字符[amountofguesss];
私有图形g;
公共游戏机(){
createComponents();
}
public void createComponents(){
boolean wordIsGuessed=false;
int=0;
对于(int i=0;该代码不完整。您是否有创建GameMaker
并显示窗口的驱动程序代码?这将非常有帮助。此外,BodyComponent
的代码未显示,请将其包含在MCVE中或从MCVE中删除该行。在我添加驱动程序类并删除一些lin后,上面的代码似乎显示正常无法解决的问题。您必须为我们做一些工作并发布一个,并且在描述实际问题时要具体说明。为什么要调用panel.setLayout()
两次。?