我在创建对话框时遇到问题。它包含了切断边框标题和输入框的所有内容。我已经尝试设置面板和组件的大小,但无济于事;大小永远不变。如果能够修改对话框的尺寸,将会有任何帮助。
JTextField account = new JTextField(6);
account.setDocument(new JTextFieldLimit(6));
account.setBorder(new TitledBorder("account"));
String[] firstDigitList = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
JComboBox firstDigitCombo = new JComboBox(firstDigitList);
firstDigitCombo.setSelectedIndex(0);
firstDigitCombo.setBorder(new TitledBorder("Leading Digit Change"));
JPanel panel = new JPanel();
panel.add(account);
panel.add(firstDigitCombo);
int result = JOptionPane.showConfirmDialog(null, panel, "Please Enter Values", JOptionPane.OK_CANCEL_OPTION);
答案 0 :(得分:5)
基本问题是TitledBorder
不会将组件扩展到足以显示整个文本的位置。相反,它只会截断文本。
解决方案是确保组件足够大,以便显示文本。我在这里通过扩展文本字段的大小以及在“缩短的”标题的位置添加“全长”标签来显示它。
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
class TestSizeOfGui {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JTextField account = new JTextField(10);
JPanel accountPanel = new JPanel(new GridLayout());
accountPanel.add(account);
accountPanel.setBorder(new TitledBorder("Account"));
String[] firstDigitList = {
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
JLabel firstDigitListLabel = new JLabel("Leading Digit Change");
JPanel firstDigitListPanel = new JPanel(new BorderLayout(4,2));
firstDigitListPanel.add(firstDigitListLabel, BorderLayout.WEST);
JComboBox firstDigitCombo = new JComboBox(firstDigitList);
firstDigitListPanel.add(firstDigitCombo);
firstDigitCombo.setSelectedIndex(0);
firstDigitListPanel.setBorder(new TitledBorder("LDC"));
JPanel panel = new JPanel();
panel.add(accountPanel);
panel.add(firstDigitListPanel);
int result = JOptionPane.showConfirmDialog(
null,
panel,
"Please Enter Values",
JOptionPane.OK_CANCEL_OPTION);
}
});
}
}