gpt4 book ai didi

java - 在 joptionpane 框中设置大小

转载 作者:行者123 更新时间:2023-12-02 13:35:18 26 4
gpt4 key购买 nike

我有以下代码。我在 joptionpane 的面板中添加了一个 textArea,但是框的框架尺寸太小,textArea 不适合它。那么,我怎样才能扩大 joptionpane 框。

    JPanel p = new JPanel(new BorderLayout(5,5));

JPanel labels = new JPanel(new GridLayout(0,1,2,2));
labels.add(new JLabel("Name", SwingConstants.RIGHT));
labels.add(new JLabel("Description", SwingConstants.RIGHT));
p.add(labels, BorderLayout.WEST);


JPanel controls = new JPanel(new GridLayout(0,1,4,4));
JTextField name = new JTextField();
controls.add(name);
JTextArea description = new JTextArea();
// description.addAncestorListener(new RequestFocusListener(false));
controls.add(description);
p.add(controls, BorderLayout.CENTER);

int result = JOptionPane.showConfirmDialog(null, p, "Create Atomic Action", JOptionPane.OK_CANCEL_OPTION);

if(result == JOptionPane.OK_OPTION)
{
System.out.println("Yes press Name"+name.getText()+" "+description.getText());
}else
System.out.println("Cancel press");

最佳答案

除了设置首选大小之外,正如 @dpassy 建议的那样,我还添加了一个 ScrollPane 组件,以便您可以添加更多文本(多于对话框中可以显示的文本)并向下滚动到底部。我还将布局从 GridLayout 更改为 BorderLayout,以便 TextBox 不会不必要地增长以填充空间。

package test;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class Test {

public static void main(String[] args) {
JPanel p = new JPanel(new BorderLayout(5, 5));

JPanel labels = new JPanel(new BorderLayout());
labels.add(new JLabel("Name", SwingConstants.RIGHT),BorderLayout.NORTH);
labels.add(new JLabel("Description", SwingConstants.RIGHT), BorderLayout.CENTER);
p.add(labels, BorderLayout.WEST);

JPanel controls = new JPanel(new BorderLayout());
JTextField name = new JTextField();
controls.add(name, BorderLayout.NORTH);
JTextArea description = new JTextArea();
JScrollPane sp = new JScrollPane(description);
// description.addAncestorListener(new RequestFocusListener(false));
sp.setPreferredSize(new Dimension(400, 100));
controls.add(sp, BorderLayout.CENTER);
p.add(controls, BorderLayout.CENTER);

JOptionPane.showConfirmDialog(null, p, "Create Atomic Action", JOptionPane.OK_CANCEL_OPTION);
}
}

结果,它将显示此对话框:

enter image description here

当您在 TextArea 中添加文本时,它也会显示滚动条。

enter image description here

关于java - 在 joptionpane 框中设置大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43050653/

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