0

ウィンドウのタスクバーのサイズや位置を変更すると、フレームが自動的に調整されない JFrame が必要です。タスクバーのサイズと位置を変更すると、JFrame のどのメソッドが正確に呼び出されますか? どのメソッドをオーバーライドする必要がありますか?

より明確な言葉で言えば、デフォルトでは、JFrame のインスタンスは、ウィンドウ タスクバーのサイズと位置を変更すると、高さと幅を自動的に調整します。しかし、ウィンドウのタスクバーを拡張したり、タスクバーを水平から垂直に変更したりしても、JFrame は応答しません。デフォルトの状態のままにしておく必要があります。

4

2 に答える 2

0

例を使用してsetResizable(false);

import javax.swing.JFrame;


public class JavaApplication7 extends JFrame{

public static void main(String[] args) {
    JFrame frame = new JFrame("EG");
    frame.setVisible(true);
    frame.setResizable(false);
}
}

これにより、サイズ変更できない「EG」という名前の小さな JFrame が作成されます。

于 2013-10-26T13:30:10.220 に答える
0

移動を防ぐことはできないと思います。setBounds または setLocation または setSize を呼び出しているようには見えませんが、OS レベルでウィンドウを直接移動します。おそらくできる最善の方法は、ComponentListener で境界の変更を検出し、すぐにウィンドウを目的の場所に戻すことです。

final Rectangle fixedPosition = new Rectangle(...);

frame.setBounds(fixedPosition);
frame.addComponentListener(new ComponentListener() {
    public void componentMoved(ComponentEvent e) {
        if (!frame.getBounds().equals(fixedPosition)) {
            frame.setBounds(fixedPosition);
        }
    }
    public void componentResized(ComponentEvent e) {
        componentMoved(e);
    }
    public void componentShown(ComponentEvent e) {}
    public void componentHidden(ComponentEvent e) {}
});
于 2013-10-26T15:38:17.707 に答える