java timer 第一个函数就可以显示,但第二个函数Jlabel就完全显示不出来,按钮也是鼠标碰过之后才能显示

public class RobotInterface{
public RobotInterface(){
frame = new JFrame();
}
public void Greeting(){
frame.setTitle("Welcome!");
Container container = frame.getContentPane();
File file = new File("greeting.txt");
String[] greetsen = new String[4];

int num = (int)(Math.random()*4);
JLabel greeting = new JLabel(greetsen[num],JLabel.CENTER);
JLabel click = new JLabel("click anywhere to order",JLabel.CENTER);
greeting.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
timer.cancel();
frame.getContentPane().removeAll();
frame.getContentPane().repaint();
mainMenu();//进入点菜界面
}
});
container.add(greeting);
container.add(BorderLayout.SOUTH, click);
frame.setSize(660, 340);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

timer = new java.util.Timer(true);
task = new java.util.TimerTask(){
public void run(){
sleep();
}
};
timer.schedule(task, 3*1000);
}
public void mainMenu(){
frame.setTitle("Menu");
JLabel order = new JLabel("Please select an option:");
JLabel option = new JLabel("Option selected:");
JLabel note = new JLabel("(Enter '0' to end the order)");
JLabel first = new JLabel("1",JLabel.CENTER);
JLabel second = new JLabel("2",JLabel.CENTER);
JLabel third = new JLabel("3",JLabel.CENTER);
JLabel fourth = new JLabel("4",JLabel.CENTER);
JLabel fifth = new JLabel("5",JLabel.CENTER);

fish = new JLabel("Fish",JLabel.CENTER);
meat = new JLabel("Meat",JLabel.CENTER);
rice = new JLabel("Rice",JLabel.CENTER);
noodle = new JLabel("Noodle",JLabel.CENTER);
drink = new JLabel("Drink",JLabel.CENTER);
sixth = new JLabel();
room = new JLabel();
column = new JPanel(new GridLayout(4,3,0,0));

selection = new JTextField(1);
select = new dishListener();
selection.addActionListener(select);//输入选项
frame.getContentPane().setLayout(null);
order.setBounds(20, 0, 600, 70);
note.setBounds(225,11,300,50);
column.setBounds(20, 50, 600, 200);
option.setBounds(320, 235, 300, 70);
selection.setBounds(460,253,100,30);
frame.getContentPane().add(order);
frame.getContentPane().add(option);
frame.getContentPane().add(note);
frame.getContentPane().add(column);
frame.getContentPane().add(selection);

column.add(first);
column.add(second);
column.add(third);
column.add(fish);
column.add(meat);
column.add(rice);
column.add(fourth);
column.add(fifth);
column.add(sixth);
column.add(noodle);
column.add(drink);
column.add(room);
frame.setVisible(true);
timer = new java.util.Timer(true);
task = new java.util.TimerTask(){
public void run(){
sleep();
}
};
timer.schedule(task, 3*1000);
}

第1个回答  2016-06-03
好像timer和task 是同一个
相似回答