Установите JFrame в центр экрана в NetBeans

Я разрабатываю настольное приложение java swing с NetBeans и я хочу установить JFrame в центр экрана.

из сети я понимаю, что могу использовать

setLocationRelativeTo(null);

установить рамку в центр Но я не могу вставить код в IDE NetBeans так как frame.pack() и frame.setVisible() генерируются коды IDE NetBeans 7 и это не позволит никакой вставки кода между двумя методами.

мне нужно получить следующий:

frame.pack() 
setLocationRelativeTo(null);
frame.setVisible()

любое предложение о том, как исправить проблему?

9 ответов


Is setVisible() на сгенерированный код? Странный. В любом случае, вы можете щелкнуть правой кнопкой мыши JFrame на Navigator и выберите Properties. Перейти к Code и выберите его, чтобы ничего не делать. Затем вручную вставьте код после initComponents() на JFrame конструктор.


свойства - >код - > проверить создать Центр


на конструкторе фрейма, у вас есть это:

public frame() {     
   initComponents();
}

вам нужно только поставить эту строку: "это.setLocationRelativeTo (null);" под "initComponents();"

и у вас будет это:

public frame() {     
   initComponents();
   this.setLocationRelativeTo(null);
}

запустите его, и он должен отображаться в центре экрана=)


выполните следующие простые шаги:

  • выберите рамку и перейдите к свойствам.
  • нажмите на раздел кода и установите флажок создать Центр.

Я не уверен, что вы получили ответ на свою проблему, но решение было дано в следующей ссылке Уэйдом Чандлером на форуме NetBeans. К сожалению, инициатор ответа на запрос был нетерпелив, чтобы сказать меньше, и вы должны работать через некоторое беспокойство, чтобы получить ответ.

http://forums.netbeans.org/ptopic37419.html

Wade показывает, как центрировать GUI и какие аспекты кода Вы можете изменить.

Как кроме того, если вы хотите разместить GUI в заданном положении на экране, вы можете использовать:

для этого также требуется доступ к окну свойства - > код. 1. Убедитесь, что вы выбрали кадр (не компонент или снаружи!) 2. Перейдите на вкладку Код в окне Свойства для JFrame. 3. Найдите метку "политика размера формы". 4. В раскрывающемся списке выберите "Создать код изменения размера". 5. Измените положение формы, нажав кнопку "..."рядом с ним. 6. Кроме того, убедитесь, что" Generate Size " проверен также.

Если вы хотите разместить GUI в левом верхнем углу экрана, используйте значение по умолчанию [0,0] для позиции формы. Для размещения второго GUI рядом с первым используйте [450,0]. В этом случае значение x было изменено на 450, значение Y сохранено как 0. Чтобы переместить графический интерфейс вниз по экрану, измените значение Y от 0 до 450.

наконец, есть ошибка NetBeans 226740, которая может привести к проблемам при попытке центрировать некоторые аспекты GUI. Это, вероятно, не повлияет на вас, но полезно осознавать это.

в отношении

Дерек


из ссылки @DerekMannering опубликовано:

Netbeans фактически генерирует центрирующую логику самостоятельно по сравнению с используйте свойство, поэтому вы не увидите параметр setLocationRelativeTo. Пойти на Вкладке " код "в окне "Свойства". Найдите метку "политика размера формы" на вкладке код. В раскрывающемся списке выберите "Создать код изменения размера". Затем убедитесь, что свойство с меткой "создать Центр" проверено. Также вы захотите убедиться, что" Generate Size " проверен как что ж. Должно быть по умолчанию, но вы все равно должны проверить. Теперь, это будет лучше всего работать для расширений JFrame или Frame.


в области конструктора Netbeans выберите JFrame, перейдите к коду.

в коде измените политику размера формы, чтобы "создать код изменения размера"

затем выберите опцию Создать центр.


  • при написании конструктора дать код ниже сделает ваш jframe в центре экрана

    public ProjectWork_jframe() {
    initComponents();
    
    Dimension screenSize,frameSize;
    int x,y;
    screenSize=Toolkit.getDefaultToolkit().getScreenSize();
    frameSize=getSize();
    x=(screenSize.width-frameSize.width)/2;
    y=(screenSize.height-frameSize.height)/2;
    setLocation(x, y);
    }
    

попробовать....

public class_name{
     initComponents();
        setLocationRelativeTo(this);
}