Java 将JPanel添加到我的框架中
我正在制作一个吊人游戏。当用户点击一个按钮(每个字母26个)时,如果猜对了字母,相应的空白点将在其上方放置字母。当我单击拼图单词中的第一个字母时,图像将正确显示在相应的空行上方。当我单击属于拼图单词的第二个字母时,该字母不会像第一个字母那样显示。我不明白为什么会发生这种情况。下面是我的代码:Java 将JPanel添加到我的框架中,java,swing,jpanel,frame,Java,Swing,Jpanel,Frame,我正在制作一个吊人游戏。当用户点击一个按钮(每个字母26个)时,如果猜对了字母,相应的空白点将在其上方放置字母。当我单击拼图单词中的第一个字母时,图像将正确显示在相应的空行上方。当我单击属于拼图单词的第二个字母时,该字母不会像第一个字母那样显示。我不明白为什么会发生这种情况。下面是我的代码: public void displayLetterPanel(char letter, int xPlace) { System.out.println("In display letter pan
public void displayLetterPanel(char letter, int xPlace)
{
System.out.println("In display letter panel");
JPanel panelLetter;
JLabel lblLetter;
String let = Character.toString(letter);
panelLetter = new JPanel();
panelLetter.setBounds(xPlace, 635, 75, 200);
frame.getContentPane().add(panelLetter);
lblLetter = new JLabel("");
lblLetter.setIcon(new ImageIcon(let.toUpperCase() + ".png"));
panelLetter.add(lblLetter);
int numLetters = 0;
for(JPanel num : letters)
{
if(num != null)
{
numLetters++;
}
}
this.letters[numLetters] = panelLetter;
for(int i = 0; i < 12; i ++)
{
if (letters[i] != null)
{
System.out.println("In for for showing letters");
JPanel pan = letters[i];
pan.enable();
}
}
System.out.println("end of In display letter panel");
}
public void displayLetterPanel(字符字母,int-xPlace)
{
System.out.println(“显示字母面板内”);
JPanel小组信;
JLabel-lblLetter;
字符串let=字符.toString(字母);
panelLetter=新的JPanel();
panelLetter.setBounds(xPlace,635,75200);
frame.getContentPane().add(panelLetter);
Lbletter=新的JLabel(“”);
setIcon(新的图像图标(let.toUpperCase()+“.png”);
panelLetter.add(lblLetter);
int numleters=0;
用于(JPanel编号:字母)
{
如果(num!=null)
{
numLetters++;
}
}
这个字母[numLetters]=panelLetter;
对于(int i=0;i<12;i++)
{
if(字母[i]!=null)
{
System.out.println(“用于显示字母的输入”);
JPanel pan=字母[i];
pan.enable();
}
}
System.out.println(“显示字母面板的末端”);
}
请考虑提供一个演示您的问题的示例。这不是一个代码转储,而是您正在做的一个示例,它突出了您所遇到的问题。这将减少混乱和更好的响应避免使用null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间来纠正这些问题