そのため、チャットのメイン インターフェイス ウィンドウを作成する jFrame があります。このウィンドウ/jFrame にはいくつかのボタンがあり、それぞれに jDialog が表示されます (Netbeans で以前に作成したもので、jDialog を親 (?) jFrame にドラッグします)。
私の問題は、両方のウィンドウがに設定されundecorated = true
ているため、ウィンドウの一部をクリックしてドラッグすることで、ユーザーがすべてのウィンドウを自由にドラッグして移動できるようにしたいことです(装飾されていないときにタイトルバーをエミュレートします)
すべてのjFrameで、直後の次のコードでこれを達成しましたinitComponents()
:
final Point point = new Point(0,0); // Why 'final' and not simply Point point?
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if(!e.isMetaDown()){
point.x = e.getX();
point.y = e.getY();
System.out.println("Ratón pulsado: " + point.x + "," + point.y);
}
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
if(!e.isMetaDown() && point.y <= 17){ //Coordinates of title bar, any X and up to 17px from the top border
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y + e.getY() - point.y);
System.out.println("Ratón movido: " + (p.x + e.getX() - point.x) + "," + (p.y + e.getY() - point.y));
}
}
});
ただし、このコードを jDialog で使用する方法がわかりません。ナビゲーターで右クリックして [コードのカスタマイズ] を選択すると、jFrame 全体が機能しなくなるため、そこに貼り付けることができません。私はjFramesのjDialogsの子のこのことで新しいので、いくつかのガイドラインで私を助けてください:)ありがとう