Итак, я перехожу в GUI на Java и пытаюсь создать простое главное меню для таймера. Все хорошо, пока я не попытался добавить фон для графического интерфейса. Добавление фона работает, однако теперь все остальные компоненты исчезли (кнопка). Как я могу это исправить?JFrame setContentPane скрывает другие компоненты
EDIT: Вот мой новый код.
общественный класс MainMenu {
// JFrame = the actual menu/frame.
private JFrame frame;
// JLabel = provides text instructions or information on a GUI —
// display a single line of read-only text, an image or both text and an image.
private JLabel background;
// JButton = button.
private JButton alarmClockButton;
// Constructor to create menu
public MainMenu() {
frame = new JFrame("Alarm Clock");
alarmClockButton = new JButton("Timer");
// Add an event to clicking the button.
alarmClockButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO: CHANGE TO SOMETHING NICER
JOptionPane.showMessageDialog(null, "This feature hasn't been implemented yet.", "We're sorry!",
JOptionPane.ERROR_MESSAGE);
}
});
// Creating the background
try {
background = new JLabel(new ImageIcon(ImageIO.read(getClass()
.getResourceAsStream("/me/devy/alarm/clock/resources/Background.jpg"))));
} catch (IOException e) {
e.printStackTrace();
}
frame.setLayout(new FlowLayout());
frame.setContentPane(background);
frame.add(alarmClockButton);
frame.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
frame.setVisible(true);
frame.setSize(450, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
alarmClockButton.setForeground(Color.RED);
}
}
Спасибо!
Вы устанавливаете область содержимого как JLabel. Затем вы вызываете frame.add (панель), но это просто пытается добавить панель в панель содержимого - вы не можете добавить панель в JLabel. – FredK
Возможно, вы захотите добавить это в форму ответа. –