Я установил фон на своем Jframe с ImageIO и перерисовал (drawImage). Он работает. My JFrame - это форма JFrame. Когда я добавляю больше компонентов, перетаскивая их в Jframe, и я запускаю проект, JFrame отображает только первый компонент, который я добавил. Остальные компоненты отображаются только тогда, когда я нажимал на них мышь. Помогите???Компоненты отображаются только при перемещении мыши. Помогите ? (Java)
class Main extends JFrame {
BufferedImage img = null;
Main() {
try {
img = ImageIO.read(new File("sfondo.jpg"));
} catch (Exception e) {
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initComponents();
this.repaint();
setVisible(true);
}
@Override
public void paint(Graphics g) {
g.drawImage(img, 1, 1, null);
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Main jrframe = new Main();
}
Pls использовать paintComponent вместо краски. Также звоните туда, как первое, что супер.paintComponent. Вероятно, это не источник проблемы, но потенциально источник других будущих проблем. –
Не переопределяйте «краску» контейнеров верхнего уровня, как вы думаете, покраска компонентов? Собственно, просто взгляните на [этот вопрос] (http://stackoverflow.com/questions/26545536/how-do-you-use-an-image-as-background-and-place-an-image-in -front-of-that? noredirect = 1 # comment41714318_26545536), который демонстрирует концепцию для рисования изображения в фоновом режиме. Вы можете установить «JPanel» в качестве области содержимого фреймов и просто добавить материал в фрейм в соответствии с нормальным, если хотите: – MadProgrammer
@TerryStorm Опять же, начиная с 'JFrame' - без' paintComponent' метода: P – MadProgrammer