質問

jFrameWithPanelは抽象的ではなく、抽象的メソッドアクションパフォーマンス(java.awt.event.actionevent)の抽象的メソッドを無効にしません。

このコードはわかりません。 Book and Javaサイトは、これがこの方法の構文であることを教えてくれますが、このエラーは絶えず表示されます。

import javax.swing.*;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
import java.lang.Math.*;
import java.lang.Integer.*;
import java.util.*;
import java.util.Random;
import java.io.*;
import java.text.*;
import java.text.DecimalFormat.*;

public class JFrameWithPanel extends JFrame implements ActionListener
{
 JButton button = new JButton("Exit");

 public JFrameWithPanel()
 {
  super("JFrame with Panel");

  JComboBox packageChoice = new JComboBox();
  packageChoice.addItem("A+ Certification");
  packageChoice.addItem("Network+ Certification ");
  packageChoice.addItem("Security+ Certifictation");
  packageChoice.addItem("CIT Full Test Package");

  packageChoice.addActionListener(this);

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  JPanel pane = new JPanel();
  pane.add(button);
  pane.add(packageChoice);
  setContentPane(pane);
  setSize(200,100);
  setVisible(true);

 }
}

じゃあ後で

public class CreateJFrameWithPanel
{
 public static void main(String[] args)
 {
  JFrameWithPanel panel = new JFrameWithPanel();
 }
}
役に立ちましたか?

解決

クラスはを実装します ActionListener インターフェース。これは、メソッドを実装する必要があることを意味します。

public void actionPerformed(ActionEvent)

ただし、投稿したクラスの定義にはこの方法は含まれていません。したがって、コンピレーションエラーが表示されている理由です。コードを修正するには、次の方法を追加してみてください。

public void actionPerformed(ActionEvent evt) {
  Object obj = packageChoice.getSelectedItem();
  JOptionPane.showMessageDialog(this, "You selected: " + obj);
}

他のヒント

implements ActionListener クラスが定義されているメソッドを定義する必要があることを意味します ActionListener インターフェース。 1つの方法があります。

void actionPerformed(java.awt.event.ActionEvent);

したがって、この方法を持っている必要があります。ボタンにはアクションリスナーが必要なので、必要です。

その方法では、ボタンがクリックされたときに何が起こるかを定義します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top