瑞星卡卡安全论坛技术交流区系统软件 关于...java.lang.NoSuchMethodError:【求助】

12   1  /  2  页   跳转

关于...java.lang.NoSuchMethodError:【求助】

关于...java.lang.NoSuchMethodError:【求助】

--------------------------------------------------------------------------------

出现这以下错误
Exception in thread “main”java.lang.NoSuchMethodError:ButtonListener:method<init><>V not found
At GUI.<init><GUI.java:13>
At gui1.main<gui1.java:4>

哈哈,,,已经搞了好久还没解决,于是上来找大家帮忙了。


相关三个等程序代码如下:

import java.awt.*; //begin GUI.java
import javax.swing.*;
class GUI extends JFrame
{

JButton btn1=new JButton("Button1");
......

ButtonListener btnListener=new ButtonListener();

GUI()
{
Container c=getContentPane();
c.setLayout(null);
......

c.add(btn1);

btn1.addActionListener(btnListener);

btn1.setBounds(130,30,200,40);


setSize(380,200);
setTitle("GUI Demo with no Listeners");
setVisible(true);
setResizable(false);
}
}//end of GUI.java


import java.awt.*; //begin ButtonListener.java
import java.awt.event.*;
import javax.swing.*;

public class ButtonListener implements ActionListener
{
GUI x;
//下面定义一个构造函数,这样后面的 x.btn2.setText("I Love Java");才能通过

ButtonListener(GUI a) {x=a;}

public void actionPerformed(ActionEvent e)

{

if(e.getActionCommand().equals("Button1"))
{
System.out.println("Button1 has been clicked");
x.btn2.setText("I Love Java");

}
}
} //end of ButtonListener.java



//begin gui1.java
class gui1{
public static void main(String args[])
{
GUI x= new GUI();

}
}
//end of gui1.java
最后编辑2005-07-28 14:34:33
分享到:
gototop
 


麻烦大家了
因为我刚学,什么都还不清楚,所以只能是“先人为我等我”待熟悉了再“我为人人”了
到现在为止我还只是问问题,真不好意思
gototop
 

因为ButtonListener.java中构造函数  ButtonListener(GUI a) {x=a;}带有参数

所以把GUI.java 中的 ButtonListener btnListener=new ButtonListener();
改为了ButtonListener btnListener=new ButtonListener(this);也就是说增加参数。


但又出现了以下错误
ButtonListener btnListener=new ButtonListener(this);GUI.java:13:cannot resolve symbol
symbol:constructor ButtonListener<GUI>
location:class ButtonListener
ButtonListener btnListener=new ButtonListener<this>

若把this 改为 new GUI()
错误同类
gototop
 

if (x%2==0 & x%7==0 & x%5==0) { y++;}与
if (x%2==0 && x%7==0 && x%5==0) { y++;}相比后者效率高,何解呢?
gototop
 

引用:
【欧虫的贴子】
麻烦大家了
因为我刚学,什么都还不清楚,所以只能是“先人为我等我”待熟悉了再“我为人人”了
到现在为止我还只是问问题,真不好意思
...........................

在GUI()前头加一个public看看呢?
gototop
 

【回复“数码出版”的帖子】谢谢你,已经没那个提示了,不过提示栈溢出吗这里是:Exception in thread "main"java.lang.StackOverflowError

gototop
 

现在我的程序改为:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ButtonListener implements ActionListener
{
GUI x;

ButtonListener(GUI a) {x=a;}

public void actionPerformed(ActionEvent e)

{

if(e.getActionCommand().equals("Button1"))
{
System.out.println("Button1 has been clicked");
x.btn2.setText("I Love Java");
}
if(e.getActionCommand().equals("Button2"))
{
System.out.println("Button2 has been clicked");
}

}
}
gototop
 

import java.awt.*;
import javax.swing.*;
class GUI extends JFrame
{
 
  JButton btn1=new JButton("Button1");
  JButton btn2=new JButton("Button2");
  JRadioButton radYes=new JRadioButton("Yes",true);
  JRadioButton radNo=new JRadioButton("No",false);

  ButtonGroup radioGroup1=new ButtonGroup();
  RadioButtonListener rbListener=new RadioButtonListener();
  ButtonListener btnListener=new ButtonListener(new GUI());

  public GUI()
  {
    Container c=getContentPane();
    c.setLayout(null);
 

    c.add(btn1);
    c.add(btn2);
    c.add(radYes);
    c.add(radNo);

    radYes.addActionListener(rbListener);
    radNo.addActionListener(rbListener);
    btn1.addActionListener(btnListener);
    btn2.addActionListener(btnListener);


    radioGroup1.add(radYes);
    radioGroup1.add(radNo);

  radYes.setBounds(30,30,50,40);
  radNo.setBounds(30,80,50,40);
  btn1.setBounds(130,30,200,40);
  btn2.setBounds(130,80,200,40);


  setSize(380,200);
  setTitle("GUI Demo with no Listeners");
  setVisible(true);
  setResizable(false);
    }
}
gototop
 

class gui1{
  public static void main(String args[])
  {
    GUI x= new GUI();

  }
}


分别是:
ButtonListener.java
GUI.java
gui1.java
gototop
 

引用:
【欧虫的贴子】【回复“数码出版”的帖子】谢谢你,已经没那个提示了,不过提示栈溢出吗这里是:Exception in thread "main"java.lang.StackOverflowError


...........................

在GUI内部,给自己安装Listener的时候new了GUI?
在GUI内部传自己this看看。
可能是GUI被new的时候,new操作中又new了GUI了。
直到堆栈空间用光。
gototop
 
12   1  /  2  页   跳转
页面顶部
Powered by Discuz!NT