0
我想獲得這兩個元素到框架使用GridBagLayout,但只要我將JComboBox添加到GridBagLayout,然後將其添加到框架,JTextFields成爲寬度很短,我不知道爲什麼或如何解決它。當我將JComboBox取出時,它工作得很好,但我確實需要在那裏有JComboBox,否則我無法完成該項目。任何幫助如何解決這個問題將不勝感激。下面是代碼:問題JTextField和JComboBox在同一個GridBagLayout在Java
package userInterface;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class AddSpend extends JFrame {
public AddSpend(){
setTitle("Add New Spend");
setSize(300,200);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLayout(new GridBagLayout());
create();
}
private void create(){
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.LINE_END;
add(new JLabel("Category: "), c);
c.gridy++;
add(new JLabel("Amount: "), c);
c.gridy++;
add(new JLabel("Date: "), c);
c.gridx = 1;
c.gridy = 0;
c.anchor = GridBagConstraints.LINE_START;
JComboBox<String> category = new JComboBox<String>();
category.addItem("Test 1");
category.addItem("Test 2");
category.addItem("Test 3");
add(category, c);
c.gridy++;
JTextField amount = new JTextField();
add(amount, c);
c.gridy++;
JTextField date = new JTextField();
add(date, c);
c.gridy++;
JButton today = new JButton("Today");
today.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Calendar now = Calendar.getInstance();
date.setText((now.get(Calendar.MONTH) + 1) + "/" + now.get(Calendar.YEAR));
}
});
today.setFont(today.getFont().deriveFont(7.0f));
today.setPreferredSize(new Dimension(30,15));
add(today, c);
c.gridy++;
JButton add = new JButton("Add Spend");
add(add, c);
}
}