Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我创建了一个私有类;PathakP“;但我发现PathakP无法解析为类型_Java_Swing - Fatal编程技术网

Java 我创建了一个私有类;PathakP“;但我发现PathakP无法解析为类型

Java 我创建了一个私有类;PathakP“;但我发现PathakP无法解析为类型,java,swing,Java,Swing,我试图用Jbutton创建一个对话框,但当我向其中添加actionListener并将我为实现actionListener而创建的类传递给按钮时,我得到了“PathakP(类名)无法解析为类型” 我使用的代码是 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class GUI1 extends JFrame { private JTextField J;

我试图用Jbutton创建一个对话框,但当我向其中添加actionListener并将我为实现actionListener而创建的类传递给按钮时,我得到了“PathakP(类名)无法解析为类型”

我使用的代码是

   import java.awt.*;

   import javax.swing.*;

   import java.awt.event.*;

   public class GUI1 extends JFrame {

   private JTextField J;
   private Font pf,bf,itf,bif;
   private JRadioButton pb,bb,ib,bib;
   private ButtonGroup B;
   private JButton ab;

    public  GUI1(){
    super("To check the Font styles" );
    setLayout(new FlowLayout());

     J=new JTextField("This is the Text who's Font will be Changed pahtak is           with me ",40);
    add(J);
    pb=new JRadioButton("Plain Button",true);
    bb=new JRadioButton("Bold Button",false);
    bib=new JRadioButton("Bold & Italic Button",false);
    ib=new JRadioButton("Italic Button",false);
    ab=new JButton("PathakButton");
    add(ab);

    add(pb);
    add(bb);
    add(bib);
    add(ib);

    B=new ButtonGroup();
    B.add(pb);
    B.add(bb);
    B.add(bib);
    B.add(ib);

    pf=new Font("Serif",Font.PLAIN,15);
    bf=new Font("Serif",Font.BOLD,15);
    itf=new Font("Serif",Font.ITALIC,15);
    bif=new Font("Serif",Font.BOLD+Font.ITALIC,16);
    J.setFont(pf);      


    pb.addItemListener(new HandlerClass(pf));
    bb.addItemListener(new HandlerClass(bf));
    bib.addItemListener(new HandlerClass(bif));
    ib.addItemListener(new HandlerClass(itf));

    ab.addActionListener(new PathakP());
}
    private class HandlerClass implements  ItemListener{
  private Font font;
  public HandlerClass(Font f){
    font=f;
}

  public void itemStateChanged(ItemEvent e) {
    // TODO Auto-generated method stub
    J.setFont(font);
}

     private class PathakP implements ActionListener{


    public void actionPerformed(ActionEvent ae) {

        JOptionPane.showMessageDialog(null, "This is just JOptionPane example");
    }

}


}

}

主类

import javax.swing.*;
public class Apples {

public static void main(String[] args) {
    GUI1 G=new GUI1();
    G.setVisible(true);
    G.setSize(500,250);
    G.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}


我认为主课堂没有任何错误
我可以通过在外部创建另一个类来解决此错误,但我想知道为什么它不接受我创建的类并在其中显示未使用的类

您的
PathakP
写在
HandlerClass
中。您有两个解决方案(在纠正了括号问题之后)

  • 或者将其写入
    GUI
    中,由于您是从构造函数调用它,因此它将绑定到
    GUI

  • 或者,如果要将其保存在
    HandlerClass
    中,则需要将其绑定到
    HandlerClass
    的实例:
    ab.addActionListener(new HandlerClass().new PathakP())


为什么它是私有的?即使我公开它也没关系,它会显示相同的错误!!因此,我无法在这个主类之外访问它。您将它定义为一个内部类。如果您修复了缩进,以便我们可以看到代码的结构,那么可能会看到问题。在那之前,祝你好运。我肯定不会像现在这样看代码。@sidgate是的,我想是的