Поместите метку для текстового поля над полем, а не сбоку - PullRequest
0 голосов
/ 07 ноября 2019

Как указано в заголовке, мне нужно переместить метку для текстового поля, чтобы оно было над окном, а не в сторону. прилагается у меня есть изображения того, что я имею в виду. что у меня есть против что я хочу Я пытался найти его, но не могу найти ответ, который искал / не совсем уверен, что искать. Я пытался использовать JFrame, но он сделал отдельное окно, если мне не нужно сделать весь GUI JFrame для меня, чтобы получить желаемый результат?

Также у метода actionPerformed есть вещи, но он не имеет отношения к вопросу, ноотображается правильно до сих пор.

import java.awt.event.\*;
import javax.swing.\*;
import java.text.DecimalFormat;

public class Project4 extends JFrame implements ActionListener {

private JTextArea taArea = new JTextArea("", 30, 20);
ButtonGroup group = new ButtonGroup();
JTextField name = new JTextField(20);
boolean ch = false;
boolean pep = false;
boolean sup = false;
boolean veg = false;
DecimalFormat df = new DecimalFormat("##.00");
double cost = 0.0;

public Project4() {
    initUI();
}

public final void initUI() {
    JPanel panel1 = new JPanel();
    JPanel panel2 = new JPanel();
    JPanel panel3 = new JPanel();
    JPanel panel4 = new JPanel();
    JPanel panel5 = new JPanel();

    getContentPane().add(panel1, "North");
    getContentPane().add(panel2, "West");
    getContentPane().add(panel3, "Center");
    getContentPane().add(panel4, "East");
    panel4.setLayout(new BoxLayout(panel4, BoxLayout.Y_AXIS));
    getContentPane().add(panel5, "South");

    JButton button = new JButton("Place Order");
    button.addActionListener(this);
    panel5.add(button);

    JButton button2 = new JButton("Clear");
    button2.addActionListener(this);
    panel5.add(button2);

    panel3.add(taArea);        

    JCheckBox checkBox1 = new JCheckBox("Cheese Pizza") ;
    checkBox1.addActionListener(this); 
    panel4.add(checkBox1);

    JCheckBox checkBox2 = new JCheckBox("Pepperoni Pizza");
    checkBox2.addActionListener(this); 
    panel4.add(checkBox2);

    JCheckBox checkBox3 = new JCheckBox("Supreme Pizza");
    checkBox3.addActionListener(this); 
    panel4.add(checkBox3);

    JCheckBox checkBox4 = new JCheckBox("Vegetarian Pizza");
    checkBox4.addActionListener(this); 
    panel4.add(checkBox4);


    JRadioButton radioButton1 = new JRadioButton("Pick Up");
    group.add(radioButton1);
    radioButton1.addActionListener(this);
    panel1.add(radioButton1);

    JRadioButton radioButton2 = new JRadioButton("Delivery");
    group.add(radioButton2);
    radioButton2.addActionListener(this);
    panel1.add(radioButton2);

    JLabel name_label = new JLabel("Name on Order");
    name.addActionListener(this);
    panel5.add(name_label);
    panel5.add(name);

    setSize(600, 300);
    setTitle("Pizza to Order");

    setDefaultCloseOperation(EXIT_ON_CLOSE);
}


public void actionPerformed(ActionEvent action) {


}

 public static void main(String[] args) {
         Project4 ex = new Project4();
         ex.setVisible(true);
 }

}

1 Ответ

0 голосов
/ 07 ноября 2019

Вы можете использовать вложенный JPanel с другим макетом для достижения этой цели. Я бы пошел с BorderLayout здесь. Вы можете также другие макеты, которые позволяют вертикальную ориентацию. Посещение визуального руководства для менеджеров по макету поможет вам их найти.

JLabel name_label = new JLabel("Name on Order");
name.addActionListener(this);
JPanel verticalNestedPanel = new JPanel(new BorderLayout());
verticalNestedPanel.add(name_label, BorderLayout.PAGE_START);
verticalNestedPanel.add(name, BorderLayout.PAGE_END);
panel5.add(verticalNestedPanel);

image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...