我有一个简单的JLabel(响应),我想根据来自JCombobox的用户交互将其放在JFrame的中心。 JLabel响应应位于窗口的中央,而JLabel选择框应位于组合框的旁边;目前,这三个都是紧挨着的。首先,我尝试将borderlayout直接与JLabel一起使用,同时将其添加到JFrame中,但这没有用。然后,我尝试在实例化JLabel本身时添加它,然后仅添加JLabel。然后,我尝试将JLabel添加到JPanel,并将JPanel添加到JFrame,但这都不起作用,所有三个对象的结果彼此相同,而三个对象的结果相同。这是我的代码:

package Buttons;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class sentencewindow extends JFrame {

public static void main(String[] args) {
    sentence senobj = new sentence();
    senobj.setVisible(true);
    senobj.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    senobj.setSize(500, 600);
}

}

class sentence extends JFrame {
String[] abc = { "First string", "Second String", "Third String" };
JComboBox combo = new JComboBox(abc);
JLabel selectone = new JLabel("This should be next to the combobox");
JLabel response = new JLabel("This should change based on combobox selection");

sentence() {
    super("TITLE");

    setLayout(new FlowLayout());

    combo.addItemListener(new ItemChangeListener());
    JPanel container = new JPanel();
    response.setSize(250, 250);
    container.add(response, BorderLayout.CENTER);
    add(container, BorderLayout.CENTER);
    add (selectone);
    add(combo);

}

class ItemChangeListener implements ItemListener {
    public void itemStateChanged(ItemEvent event) {

        if (combo.getSelectedItem().equals(abc[0])) {
            response.setText("You pressed the first option.");

        }
        if (combo.getSelectedItem().equals(abc[1])) {
            response.setText("You pressed the second option.");
        }
        if (combo.getSelectedItem().equals(abc[2])) {
            response.setText("You pressed the third option.");
        }
    }
}
}


非常感谢您抽出宝贵的时间阅读本文,非常感谢您为帮助其他程序员所做的努力!我知道这是一个初学者的问题,但是我已经坚持了很长时间,并且已经阅读了几乎所有与此相关的问题。请帮忙,谢谢。

最佳答案

您要查找的是JLabel#setHorizontalAlignment,用于使文本在标签本身中居中。

添加带有边框布局的框架,添加带有组合框的面板,并在框架的北部添加标签。将标签添加到框架的中心。标签占据了全部可用空间,并且中心文本选项应将文本在标签内居中。

关于java - 边框布局不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32282895/

10-12 19:49