JFrame.getBounds getX getWidth getLocation 这些方法都获取了窗口初始化的大小和位置什么方法可获取拖动窗口之后大小和位置? 还有我试过,ComponentListener的componentMoved方法,移动的时间竟然收不到通知不知道为什么 

解决方案 »

  1.   

    为啥我的结果很正常
    import java.awt.event.*;
    import javax.swing.*;
    import static javax.swing.ScrollPaneConstants.*;public class Frame {
        public static void main(final String[] args) {
    java.awt.EventQueue.invokeLater(new Runnable(){
    @Override public void run() {
        final JFrame frame = new JFrame("Hello");
        final JTextArea textarea = new JTextArea();
        final JScrollPane scrollpane = new JScrollPane(textarea,VERTICAL_SCROLLBAR_ALWAYS,HORIZONTAL_SCROLLBAR_NEVER);
        frame.getContentPane().add(scrollpane);
        frame.setLocationRelativeTo(null);
        frame.addComponentListener(new ComponentAdapter(){
        @Override public void componentMoved(ComponentEvent e) {
    //java.awt.Component c = e.getComponent()
    //textarea.append(c.getBounds().toString()+"\n");
    textarea.append(frame.getBounds().toString()+"\n");
        }
    });
        frame.setPreferredSize(new java.awt.Dimension(600,400));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
        });
        }
    }
      

  2.   


    getBounds我是没试 昨晚一直用getLocation获得的一直是初始化时的回用getBounds