Mat*_*ips 6 java swing joptionpane
我想做的就是有一个带有JTextArea而不是JTextField的JOptionPane inputDialog.
我尝试将JTextArea放在Message参数中,就像这样
Object[] inputText = new Object[]{new JLabel("Enter Graph Information"),
newJTextArea("",20,10)};
graphInfo=(String)JOptionPane.showInputDialog(null,
inputText,
"Create Graph",
JOptionPane.PLAIN_MESSAGE,
null,
null,
"");
Run Code Online (Sandbox Code Playgroud)
但它仍然在底部有文本字段,我无法从JTextArea获取文本.有没有办法删除原始文本字段并从jtextarea获取文本或完全替换文本区域的文本字段?我试图避免在可能的情况下进行自定义对话,这似乎"似乎"应该很容易做到的事情?
你说的是正确的; 你只需要使用showConfirmDialog而不是showMessageDialog,它允许你传递任何Component作为你的"消息"并将其显示在JDialog.然后,您可以捕获JTextArea用户单击"确定"的内容; 例如
int okCxl = JOptionPane.showConfirmDialog(SwingUtilities.getWindowAncestor(this),
textArea,
"Enter Data",
JOptionPane.OK_CANCEL_OPTION)
if (okCxl == JOptionPane.OK_OPTION) {
String text = textArea.getText();
// Process text.
}
Run Code Online (Sandbox Code Playgroud)
如果你想与你一起展示一个JLabel,JTextArea你可以创建并传入一个JPanel包含Components的内容; 例如
JTextArea textArea = ...
JPanel pnl = new JPanel(new BorderLayout());
pnl.add(new JLabel("Please enter some data:"), BorderLayout.NORTH);
pnl.add(textArea, BorderLayout.CENTER);
JOptionPane.show...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7449 次 |
| 最近记录: |