【发布时间】:2016-04-13 19:18:43
【问题描述】:
如何将网格包布局添加到我的代码中,以使输出框跨越以下代码中提供的边框参数内的 gui 长度?我还有另外两个课程可以很好地完成这项工作。当 GUI 填充时,除了输出文本框不跨越 gui 的长度外,它都可以工作,因此文本框中的文本被截断,我想解决这个问题,但我不知道该怎么做,因为我从来没有使用了gridbaglayout。
下图显示了 GUI 的外观:
有问题的代码如下:
public ATMGui() {
checkingAcc = new Account(1000);
savingAcc = new Account(2000);
currentSelect = new Account(0);
atmFrame = new JFrame("Automated Teller Machine");
output = new JTextField();
panel = new JPanel();
我认为问题可能是因为我没有完全声明输出框的大小,所以它只能跨越一个网格,可以这么说,而我希望它跨越两个网格。有人可以帮我决定是在上面的代码中以不同的方式声明网格还是在下面的代码中声明网格?另外,我已经阅读了 GridBagLayout 和其他方法,但我的问题是我不确定如何/在哪里实现它。
atmWithdraw = new JButton("Withdraw");
atmDeposit = new JButton("Deposit");
transfer = new JButton("Transfer to");
balance = new JButton("Balance");
atmWithdraw.addActionListener(this);
panel.setLayout(new GridLayout(4, 2));
panel.setBorder(BorderFactory.createEmptyBorder(15, 15, 0, 15));
panel.add(atmWithdraw, 0);
panel.add(atmDeposit, 1);
panel.add(transfer, 2);
panel.add(balance, 3);
panel.add(checking, 4);
panel.add(savings, 5);
panel.add(output, BorderLayout.LINE_END);
atmFrame.add(panel);
atmFrame.setSize(300, 175);
atmFrame.setVisible(true);
【问题讨论】:
-
如果您以前从未使用过 GridBagLayout,现在是时候学习它了
-
那不是 SSCCE!!!我们对与框架上组件的布局没有直接关系的任何代码不感兴趣,因为您的问题专门针对布局管理器。
-
知道了,谢谢你的链接
标签: java swing user-interface jpanel gridbaglayout