как создать окно JFrame с компонентом рисования графической области с помощью JTextField, JButton и JLabel?

#java #swing #jbutton #jtextfield #paintcomponent

#java #качать #jbutton #jtextfield #paintcomponent

Вопрос:

Я искал в Google, как создать что-то похожее на изображение. Текстовые поля, метки, кнопки с действиями и графическая область — все в одном JFrame, но я могу найти их только разделенными. Я имею в виду, я понимаю, как создавать их отдельно, но не как собрать их вместе. Я читал об использовании GridBagConstraints, но это очень запутанно. Я был бы признателен за любой совет.

introducir la descripción de la imagen aquí

Комментарии:

1. но нет, как собрать их вместе. — используйте панель для логической группировки компонентов. В вашем случае у вас может быть одна панель для компонентов сверху. JPanel использует потоковое описание, поэтому вы увидите все в одной строке. Верхняя панель добавляется к BorderLayout. PAGE_START и панель графика в BorderLayout. ЦЕНТР рамки. Прочитайте руководство по Swing по менеджерам компоновки для рабочих примеров. но это очень запутанно — это не вопрос. Какую часть демонстрационного кода в руководстве вы не понимаете.

2. Центральная JPanel — это JPanel для рисования. Смотрите Руководство Oracle по выполнению пользовательского рисования , чтобы увидеть рабочий пример построения JPanel для рисования.

Ответ №1:

Самый простой способ — использовать BorderLayout и включить свои панели («отдельные компоненты») в нужные вам регионы (север, юг, восток, запад или центр).

     JFrame frame = new JFrame();

    JPanel actions = new JPanel();
    JPanel graph = new JPanel();

    frame.setLayout(new BorderLayout());
    frame.getContentPane().add(actions, BorderLayout.SOUTH);
    frame.getContentPane().add(graph, BorderLayout.CENTER);
 

Комментарии:

1. Макет по умолчанию для JFrame — это BorderLayout .