我想用Java创建一个简单的二十一点GUI。我知道创建JLabel,JPanel等的基础知识。但是,我找不到为什么我的 JLabel 没有显示在屏幕上。这是我的代码:
//Create and set up the window.
JFrame frame = new JFrame("BlackJack");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//new border panel
JPanel gui = new JPanel(new BorderLayout(2,2));
//create players panel
JPanel panel2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
panel2.setPreferredSize(new Dimension(600, 200));
panel2.setBackground(Color.ORANGE);
gui.add(panel2, BorderLayout.CENTER);
//Display the window.
frame.pack();
frame.setVisible(true);
frame.setTitle("BlackJack!");
//add players name
String name = JOptionPane.showInputDialog(null, "Name?");
JLabel playerName = new JLabel(name);
playerName.setPreferredSize(new Dimension(100, 40));
playerName.setFont(new Font("sansserif", Font.BOLD, 18));
panel2.add(playerName);
当我点击编译时,我得到的是一个名称对话框?,然后是一个空面板。我不明白为什么我的 JLabel 不在面板中,因为我已将其添加到我的框架中。我错过了什么吗?
if(nloop != 1 || nloop != 2){
这是一个重言式。
对于每个数字 - 它不能同时是 1 和 2 - 因此条件(nloop != 1 || nloop != 2)
总是产生 true
.
也许你想要&&
而不是||
?
while 循环:正如评论中所指出的,while(run2 = true){
也有气味(尽管这似乎不是问题中所述的问题)。
你需要改变
if(nloop != 1 || nloop != 2){
自
if(nloop != 1 && nloop != 2){
想想吧。如果输入 1,则原始 if 条件将检查 1 是不等于 1 还是 1 不等于 2。1 显然是 != 2,所以执行了错误的输入代码。
相反,您希望错误的输入代码仅在输入不是 1 而不是 2 时才运行。