Java 设置joptionpane框上的大小
我有以下代码。我在joptionpane中的面板中添加了一个textArea,但框的框架太小,textArea不适合它。那么,我怎样才能放大joptionpane盒子呢Java 设置joptionpane框上的大小,java,Java,我有以下代码。我在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.
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
,这样文本框就不会不必要地增长以填充空间
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);
}
}
因此,它将显示以下对话框:
当您在文本区域中添加文本时,它也会显示滚动条
尝试在TextArea上使用setPreferredSize方法你能发布一个吗?@Salman我指的是一个可以复制和粘贴的类,而无需添加额外代码使其可执行。