Я новичок в использовании компонентов свинга и jframe в java, и я работаю над созданием консоли для игры. Я пытаюсь выровнять элементы консоли следующим образом:
_______________________________
| _____________________ |
| | | |
| | Output | |
| |___________________| |
| |
| _______ |
| |_Input_| |
|_____________________________|
Моя текущая программа, показанная ниже, отображает поля ввода и вывода рядом друг с другом, а не друг над другом и под ним.
import javax.swing.*;
import java.awt.*;
public class GUI{
public static void main(String[] args) {
SwingUtilities.invokeLater(GUI::startUp);
}
private static void startUp() {
JFrame frame = new JFrame("AoA");
frame.setLayout(new BoxLayout(frame, BoxLayout.Y_AXIS));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1020,760);
frame.setBackground(Color.LIGHT_GRAY);
frame.setResizable(false);
frame.setLayout(new FlowLayout());
JTextArea jta = new JTextArea(30,60);
jta.setEditable(false);
jta.setBackground(Color.WHITE);
frame.add(new JScrollPane(jta));
JTextField jta2 = new JTextField();
jta2.setPreferredSize(new Dimension(200,70));
jta2.setHorizontalAlignment((int) JTextField.CENTER_ALIGNMENT);
frame.add(new JScrollPane(jta2));
frame.setVisible(true);
jta.append("Test");
}
}
Как я могу настроить выравнивание этих компонентов так, чтобы они соответствовали предполагаемому результату?
new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS)
- person Hovercraft Full Of Eels   schedule 02.02.2020setPreferredSize
. В случаеJTextField
вы можете указать количество видимых столбцов в качестве ориентира - person MadProgrammer   schedule 02.02.2020frame.setLayout(new FlowLayout());
имеет смысл? - person Hovercraft Full Of Eels   schedule 02.02.2020pack()
после добавления компонентов в фрейм. Или другим подходом было бы сохранить значение BorderLayout по умолчанию. Добавьте свою текстовую область в JScrollPane и добавьте панель прокрутки в ЦЕНТР BorderLayout. Затем создайте JPanel и добавьте JTextField на панель. Затем добавьте панель в BorderLayout.PAGE_END фрейма. - person camickr   schedule 02.02.2020