gpt4 book ai didi

java - 如何在确认 JOptionPane 上的同一个 "line"上放置多个 JComponent?

转载 作者:行者123 更新时间:2023-12-01 20:54:41 25 4
gpt4 key购买 nike

这是我的代码:

public class PaymentDialog {

public static int show(Double value) {
JLabel total = new JLabel("Total: ");
JLabel totalValue = new JLabel(value.toString());
JLabel input = new JLabel("Entrada: ");
JTextField inputField = new JTextField();
JLabel change = new JLabel("Troco: ");
JLabel changeValue = new JLabel("1234");
JComponent[] components = new JComponent[] {
total,
totalValue,
input,
inputField,
change,
changeValue
};
int result = JOptionPane.showConfirmDialog(null, components, "Pagamento", JOptionPane.OK_CANCEL_OPTION);
return result;
}

}

这是它的图像:

enter image description here

正如你所看到的,每个组件都占据一整行,这是残酷的。标签应该位于相应组件的后面,而不是上面。

如何自定义此布局行为?如果不可能,我如何创建一个自定义 JDialog 来允许我做到这一点? (因为我不想创建 JFrame 来正确自定义布局,因为它不是同一件事)。

最佳答案

您可以将任何组件添加到选项 Pane 。因此,您可以创建自己的面板并使用任何布局并添加您想要的任何组件。

一个问题是文本字段没有焦点。焦点将位于选项 Pane 的按钮上。

如果您想将焦点放在文本字段上,请查看 Dialog Focus 中的 RequestFocusListener 。这将允许您控制显示选项 Pane 时面板上的哪个组件获得焦点。

它还包含用于创建带有 GridLayout 的面板以显示在选项 Pane 上的示例代码。

关于java - 如何在确认 JOptionPane 上的同一个 "line"上放置多个 JComponent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42547024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com