2015-10-22 3 views
0

JLabel не отображается! buttons() отображаются только тогда, когда я нажимаю на свой frame. Можно ли показать его без щелчка?Java JLabel не отображается

public frame() { 
    frame.setTitle("MyWindowTitle"); 
    frame.setSize(width, height); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    frame.setResizable(true); 
    // frame.setLayout(new FlowLayout()); 
    frame.setLayout(null); 
    frame.getContentPane().setBackground(Color.RED); 
    frame.pack(); 
    frame.setVisible(true); 
    JPanel panel = new JPanel(); 
    frame.add(panel); 
    panel.setLocation(150, 150); 
    panel.add(new JButton("Hello!")); 
    scorel = new JLabel("Score: " + score); 
    frame.add(scorel); 

    buttons(); 
} 

ответ

0

Сделать

//frame.pack(); //Dont call pack() if you use null layout 
frame.setVisible(true); 

это последнее утверждение вашего метода. А также используйте setSize() из panel, как вы используете null layout в frame. Без setSize и setLocation или вместе setBounds ваш контент не отображается должным образом в null layout.

panel.setSize(400, 300); 

также

scorel.setSize(width, height); 
scorel.setLocation(x, y); 

Good Practice

  1. Try, чтобы избежать пустой макет

    Чтобы узнать о макете см https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

  2. Исправьте тип переменной и класс. Условные обозначения именования http://www.oracle.com/technetwork/java/codeconventions-135099.html
Смежные вопросы