Как установить расположение текстового поля в Java GUI? - PullRequest
0 голосов
/ 10 апреля 2011

Как установить расположение текстового поля в графическом интерфейсе Java?

Я попробовал это:

public Apletas() 
{
    inputLine.setLocation(null);
    inputLine.setLocation(80, 80);
    add(inputLine);
}

Но не работает.

Ответы [ 4 ]

1 голос
/ 10 апреля 2011

Сначала установите макет вашего апплета на null:

  ...
  public void init()
  {
    setLayout(null);
  }
  ...
1 голос
/ 11 апреля 2011

Игнорировать setLocation() / setBounds() & , особенно setLayout(null). Оставь всякую надежду (и последние остатки здравомыслия), вы, кто входит туда.

Установка расположения компонентов с помощью менеджеров по расположению.

Для определения размеров компонентов обычно достаточно предоставить соответствующие аргументы в конструкторе (например, new JTextArea(rows, columns)) или, в некоторых случаях, используя ограничения макета (например, BorderLayout.CENTER).

Для разрыва между компонентами посмотрите как пакет javax.swing.border, так и аргументы конструктора менеджеров компоновки или, в некоторых случаях, ограничения макета (например, GridBagLayout & GridBagConstraints).

Пример:

//<applet code='Apletas' width='600' height='400'></applet>
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class Apletas extends JApplet {

    private JTextField inputLine;

    public Apletas()
    {
        inputLine = new JTextField(20);

        JPanel mainGui = new JPanel(new BorderLayout(20,20));
        mainGui.setBorder(new EmptyBorder(80,80,80,80));

        mainGui.add(inputLine, BorderLayout.NORTH);

        mainGui.add(new JScrollPane(new JTextArea(20,10)), BorderLayout.CENTER);
        JTree tree = new JTree();
        tree.expandRow(2);
        mainGui.add(new JScrollPane(tree), BorderLayout.WEST);

        setContentPane(mainGui);
        validate();
    }
}

Для компиляции и запуска

prompt> javac Apletas.java
prompt> appletviewer Apletas.java

См. Также

Размещение компонентов внутри контейнера & Как использовать границы в руководстве по Java.

0 голосов
/ 02 сентября 2016

Вы должны обнулить макет по умолчанию, используя код

setLayout(null);

и затем можете использовать метод setBounds, чтобы найти ваши колебания это выглядит так

JTextField jt = new JTextField();
jt.setBounds(x,y,width,height);
0 голосов
/ 10 апреля 2011

Я не уверен, почему вы должны .setLocation(null) в текстовом поле и затем установить его снова.

Объявлена ​​ли inputLine где-либо еще (в этом случае, пожалуйста, напишите здесь полный код), или вы пропустилилиния как

TextField inputLine = new TextField("Hello world");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...