Я пытаюсь получить изображения, которые появятся на JPanel, и ранее пытались использовать JLabels, но это не сработало. Теперь я пытаюсь использовать метод paintComponent. Мой код состоит в создании окна с фреймом и добавлении JPanel к фрейму. Затем в моем методе actionPerformed, вызванном с использованием переадресации вызовов таймера, я не получаю вывод из метода System.out.println. Как я могу заставить это работать?Как получить метод paintComponent для отображения на экране
public void createWindow(){
frame.add(panel);
frame.addComponentListener(this);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setSize(xSize, ySize);
frame.setLocation(0, 0);
}
@Override
public void paintComponent(Graphics g) {
System.out.println("Method Called");
super.paintComponent(g);
g.drawString("Code has painted", 10, 100);
}
'ранее пытались использовать JLabels, но это не сработало' - JLabel - это самый простой компонент в Swing. Нет причин, по которым вы не можете использовать ImageIcon с JLabel. Вы должны научиться делать это сначала, прежде чем выполнять обычную роспись. Не изобретайте велосипед! Фактически я показал вам, как это сделать 3 недели назад: http://stackoverflow.com/a/18927663/131872. Также в учебнике Swing есть много примеров. – camickr
И, пожалуйста, делайте вызовы типа 'frame.setVisible (true)' в конце, как только все компоненты были добавлены в контейнер, и контейнер полностью понял его размер. –
По этой причине я не делал JLabels, потому что это не позволяло мне изменять размер или перемещать любые метки –