В момента проектирам меню с няколко екрана с множество бутони на всеки екран. За да използвам бутони в горната част на фоновото изображение, което е в jLabel (по подразбиране не мога да поставя бутони в горната част на jLabel), използвах GridBagLayout с два панела/екран с менюта, като единият панел съдържа бутоните (непрозрачен = false) и един панел с фоновото изображение или jLabel. За да превключвам текущите панели, които се показват, в зависимост от това къде е потребителят в менюто, направих всеки екран на менюто (известен още като всеки 2 панела) в отделни методи, а не в класове.
Сега стигнах до момента, в който работя върху части от интерфейса, които са ненужно сложни, и не смятам, че GridBag ще служи на целите ми, така че се чудех дали има различен начин да нарисувам фона си изображение, все още мога да използвам моите бутони върху изображението.
Най-популярният начин, който потърсих, беше да заменя метода paintComponent, но не мога да направя това, тъй като съм направил своите JPanel в отделни методи, а не в класове. Всички те се съдържат в моя оригинален JFrame.
Помощта ще бъде високо оценена, благодаря!
Току-що добавих този код, но фонът ми остава бял по някаква причина? Опитвам другото предложение в момента, благодаря, момчета!
private void mainPanel() {
icon = new ImageIcon(getClass().getResource("/phantasma/menuv1.png"));
mainContainer1 = new javax.swing.JPanel() {
@Override
protected void paintComponent(Graphics g) {
g.drawImage(icon.getImage(), 0,0, null);
super.paintComponent(g);
}
};
super.paintComponent()
като първото извикване на вашето заменяне на paintComponent. В противен случай можете да изтриете всичко, което е нарисувано преди. - person Hovercraft Full Of Eels   schedule 25.09.2011