关于JAVA的JOptionPane类中的Internal...Dialog的父组件参数。

来源:百度知道 编辑:UC知道 时间:2024/06/18 14:04:02
代码如下:import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class test{
public static void main(String[] args){
MyFrame frame=new MyFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class MyFrame extends JFrame{
public MyFrame(){
setTitle("Sample");
setSize(300,200);
button =new JButton("Try");
panel=new JPanel();
panel.add(button);
add(panel);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
JOptionPane.showInputDialog(MyFrame.this,"Message");
}
});
}
private JPanel panel;
private JButton button;
}
当把showInputDialog改为showInternalInputDialog运行时,就是出现 java.lang.RuntimeException: JOptionPane:parentComponent does not have a valid parent.
我想问一下showInternalInputDialog(Component parent,.......)中,parent要什么类型的,为什

showInternalInputDialog需要明确指定直接父组件,在这里你是通过点击button弹出窗口的,所以父组件不是MyFrame,而是button,你只要把MyFrame.this改成button就好了。

看看:
showInternalInputDialog
public static String showInternalInputDialog(Component parentComponent,

Object message,

String title,

int messageType)显示请求用户输入内容的内部对话框,它以 parentComponent 为父级。该对话框的标题为 title,消息类型为 messageType。

参数:
parentComponent - 对话框的父 Component
message - 要显示的 Object
title - 要在对话框的标题栏中显示的 String
messageType - 要显示的消息类型:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE

什么?