如何解决如何使用 GridBagLayout 垂直格式化
我正在制作一个使用盒子和 JComboBox
的项目,并且想要使用 GridBagLayout
。我想要在屏幕顶部中心的组合框,然后是 Box
,中间有一个 JTextArea
。到目前为止,这是我的代码:
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import javax.swing.JFrame;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JTextArea;
import javax.swing.JComboBox;
/**comboBoxFrame Constructor
* Takes Mouse Event Input From User
* Based On Option Chosen By User From Dropdown,displays Corresponding information,Taken From birtdayCaclulator.java
*/
@SuppressWarnings("serial")
public class comboBoxFrame extends JFrame {
private final JComboBox<String> classComboBox;
private JTextArea outputBox;
private static final String[] names = {
"-Select-","Age Summary","Zodiac Sign","Birth Stone","Generation","Day of Week","Lucky Number","Milestones","First Presidential Election Vote","Days Since Last Birthday","Days Until Next Birthday","Animal Years Summary","Other Planet Age Summary","Days After Milestones Summary","Birthday Summary","Help"
};
private static final String[] output = {
"Output will appear here",CreateDriver.bday.ageSummary(),CreateDriver.bday.getZodiacSign(),CreateDriver.bday.getBirthStone(),CreateDriver.bday.getGeneration(),CreateDriver.bday.getDayOfWeek(),CreateDriver.bday.getLuckyNum(),CreateDriver.bday.getMileStones(),CreateDriver.bday.getFirstPresElectionVote(),CreateDriver.bday.getDaysSinceLastBday(),CreateDriver.bday.getDaysTillNextBday(),CreateDriver.bday.animalYeaRSSummary(),CreateDriver.bday.otherPlanetAgeSummary(),CreateDriver.bday.getDaysAfterMilestonesSummary(),CreateDriver.bday.toString(),CreateDriver.bday.getHelp()
};
public comboBoxFrame() {
super("Birthday Calculator");
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
Box Box = new Box(BoxLayout.Y_AXIS);
outputBox = new JTextArea("Output will appear here",20,50);
Box.add(outputBox,gbc);
classComboBox = new JComboBox<String>(names);
classComboBox.setMaximumRowCount(5);
classComboBox.addItemListener(
new ItemListener() {
@Override
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED) {
outputBox.setText(output[classComboBox.getSelectedindex()]);
}
}
}
);
add(classComboBox,gbc);
outputBox = new JTextArea("Output will appear here");
add(outputBox,gbc);
}
}
它当前在中心 Y 轴处彼此相邻地打印 ComboBox 和 Box。有谁知道我应该改变什么来解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。