我想使一個 JFrame 成為不可移動的(當點擊標題欄并移動滑鼠時,用戶無法移動視窗)。
在 Windows 中是否可以這樣做?
import javax.swing.JFrame。
public class Test extends JFrame {
public Test() {
this.setResizable(false)。
this.setExtendedState(JFrame.MAXIMIZED_BOTH)。
this.setVisible(true)。
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。
}
我在 Windows 10 上使用 Java 11。
uj5u.com熱心網友回復:
你不能
因為一個幀的setBounds發生在幀的對等位置。檢查WFramePeer代碼。
首先,該類是封裝私有的。你不能@Override它和裝飾setWhateverBounds方法。
其次,有很多native方法。
你唯一的希望,
。可能是使用frame.setUndecorated(true)并創建你自己的沒有拖動功能的標題欄。但是,祝你在給這個標題欄提供本地 UI 風格方面好運。
uj5u.com熱心網友回復:
來自另一個 stackoverflow問題:-
把這個添加到你的代碼中
private void formComponentMoved(java. awt.event.ComponentEvent evt) {
this.setLocationRelativeTo(null)。
}
frame.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentMoved(java.awt.event.ComponentEvent evt) {
formComponentMoved(evt);
frame.setLocation(frame.getX(),frame.getY())。
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/310266.html
標籤:
