以下代码中的错误是:java.lang.IllegalArgumentException: adding container's parent to itself.
这就是代码:
public class humev extends JFrame implements ActionListener{
//Dichiarazione variabili e costanti
private static final int larghezza = 1300;
private static final int altezza = 1000;
private static final String nome = "Human Evolution";
private JLabel lab;
private JButton gioca;
private JPanel pang;
public humev(){
try{
pang = new JPanel();
gioca = new JButton("Gioca!");
gioca.addActionListener(this);
lab = new JLabel();
gioca.add(gioca);
lab.add(lab);
pang.setLayout(null);
}
catch(Exception e1){
System.err.println(e1);
System.err.println("Impossibile caricare il frame di gioco!");
}
}
public static void main(String[] args) {
//Finestra
try{
humev h = new humev();
JFrame finestra = new JFrame(nome);
Dimension dim_finestra = new Dimension(larghezza, altezza);
finestra.setPreferredSize(dim_finestra);
finestra.setMaximumSize(dim_finestra);
finestra.setResizable(false);
finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finestra.pack();
finestra.setVisible(true);
}
catch(Exception e2){
System.err.println(e2);
System.err.println("Impossibile caricare la finestra. Frame non caricato");
}
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == gioca){
lab.setText("Gioco avviato con successo!");
}
}
}
4条答案
按热度按时间lmvvr0a81#
不能将
label
添加到label
中:-Aldo你不能在
button
上添加button
:-尝试将它们添加到
JPanel
或ContentPane
,而不是像这样:-编辑:-
要显示
JFrame
,您需要首先将JPanel
添加到JFrame
,然后将JFrame
的可见性设置为true
,如下所示:-也不要将布局设置为
null
:-否则,您需要自己设置边界。注解这一行。
50few1ms2#
试着运行这个例子。在你的代码中有一堆问题。
正在将组件添加到自身
使用布局.不要使用null
完全码
wpx232ag3#
IllegalArgumentException为Unchecked Exception。
它由API开发人员或程序员显式引发,以指示使用非法参数调用的方法。
示例:
输出:
Thread优先级的有效范围是1到10,如果我们试图用任何其他值设置优先级,那么我们将得到IllegalArgumentException。
vi4fp9gy4#
你应该在lib文件夹中添加你的mysql连接器jar文件。就这样