Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Перерисовка окна


Автор: Jilian 20.8.2006, 17:37
Подскажите пожалуйста, как мне обновлять окно после его сворачивания и последующего 
восстановления.

Код

import javax.swing.JFrame;

public class Solution {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setBounds(300, 300, 100, 150);
        frame.setVisible(true);
        frame.getGraphics().drawRect(20, 40, 70, 70);
    }

}


 В приведенном коде нарисованный прямоугольник исчезает...

Автор: powerOn 20.8.2006, 17:52
нужно переопределить метод paint() у JFrame и внем делать прорисовку, тогда проблема отпадет сама собой:

Код

import java.awt.Graphics;

public class NewJFrame extends javax.swing.JFrame {
    public NewJFrame() {
        initComponents();
    }
                 
    private void initComponents() {
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(java.awt.event.ComponentEvent evt) {
                formComponentResized(evt);
            }
        });
        pack();
    }                       

    private void formComponentResized(java.awt.event.ComponentEvent evt) {                                      
        repaint();
    }                                     
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
       
    public void paint(Graphics g) {
        g.drawRect(20, 40, 70, 70);
    }
}

Автор: Jilian 20.8.2006, 17:55
Большое спасибо, сейчас попробую.

Автор: Jilian 20.8.2006, 23:16
 Все работает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)