我想用Java创建一个简单的Blackjack 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不在面板中,因为我已将它添加到我的框架中。我错过了什么吗?
答案 0 :(得分:4)
if(nloop != 1 || nloop != 2){
这是tautology。
对于每个号码 - 它不能同时为1和2 - 因此条件(nloop != 1 || nloop != 2)
始终会产生true
。
也许您想要&&
而不是||
?
while循环:while(run2 = true){
也smells,正如评论中所指出的那样(虽然它似乎不是问题中所述的问题)。
答案 1 :(得分:0)
您需要更改
if(nloop != 1 || nloop != 2){
到
if(nloop != 1 && nloop != 2){
想一想。如果输入1,则原始if条件检查1是否不等于1或1不等于2. 1显然是!= 2,因此输入错误的输入代码。
相反,只有当输入不是1而不是2时,您才希望输入错误的输入代码。