является потокобезопасным - но вы, вероятно, правы в том, что они, вероятно, спам EDT

иже - очень простой тест, который включает изображение. Он должен перерисовывать изображение всякий раз, когда я отправляю «a» в System.in, и должен выходить из программы всякий раз, когда я посылаю «q».

Проблема в том, что работает только выход: метод paint () никогда не вызывается, и я не знаю почему.

Я проверил вызов «super.paint ()», попытался заменить paint (Graphics g) на paintCompoenent (Graphics g), но, похоже, ничего не работает: просто нет вызова.

Проблема связана со сканером в main ()?

Путь в программе не тот, который я использовал, и первая краска верна, поэтому проблемы не должно быть.

NB, если это полезно, я использую Eclipse Oxygen и Java9 SE

Спасибо всем!

вставка кода:

public class TestImagePanel extends JPanel {

    private BufferedImage image;
    private int xpos = 0;
    private int ypos = 0;
    private String _imagePath = "//myFolder//image.png";

    public TestImagePanel() {
        try {
            image = ImageIO.read(new File(_imagePath));
        } catch (IOException ex) {}
    }

    public void paint(Graphics g) {
        super.paint(g);
        System.out.println("painting LOG");
        g.drawImage(image, this.xpos++, this.ypos++, this);
    }

    public void update(String a) {
        System.out.print("Receiving:" + a + "---" + xpos + ":" + ypos);
        if (a.equals("a"))
            repaint();
        else if (a.equals("q")) {
            System.out.println("LOGOUT");
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("test");
        TestImagePanel testimg = new TestImagePanel();
        frame.add(new TestImagePanel());
        frame.setSize(new Dimension(600, 600));
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Scanner in = new Scanner(System.in);
        while (true)
            testimg.update( in .next());
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос