1

実際のプログラムが開始する前に、情報を収集する GUI をプログラムに起動させようとしています。メインでは、スタートボタンが押されるまで実行される JFrame を呼び出して、メインプログラムを起動しようとします。initializeLauncher の基本クラスを除いて、すべてが正しいようです。ありがとう!

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class InitializeLauncher implements ActionListener {

    InitializeLauncher() {
        JFrame frame = new JFrame("launcherClient");

        Container c = frame.getContentPane();
        Dimension d = new Dimension(700,400);
        c.setPreferredSize(d);

        JButton startButton = new JButton("Start");
        JPanel pane = new JPanel();

        startButton.addActionListener(this);

        pane.add(startButton);
        frame.add(pane);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setResizable(false);
        frame.setVisible(true);
    }

    public void buttonClicked(ActionEvent e)
    {
        ApplicationDeploy displayExample = new ApplicationDeploy();
        displayExample.initializeGameClient();
    }
}

...そして、主にこれを呼び出します:

InitializeLauncher launcher = new InitializeLauncher();
launcher.InitializeLauncher();
4

1 に答える 1

3

クラスを抽象化することで、間違ったことを修正しています。代わりに、欠落しているメソッドをクラスに与える必要があります。public void actionPerformed(ActionEvent e) {...}

ここでの基本的な規則は、クラスがインターフェース (ここでは ActionListener インターフェース) を実装する予定であると述べた場合、クラスはインターフェースのすべてのメソッドを実装する必要があるということです。

@Override
public void actionPerformed(ActionEvent e) {
   // ... your code that should occur when the button is pressed goes here
}

buttonClicked(...)あなたのメソッドはあなたにとって何の役にも立たないことに注意してください。おそらく、そのメソッドを取り除き、そのコードを actionPerformed メソッドに入れたいと思うでしょう。

余談ですが、JFrame を使用している機能のために JOptionPane をよく使用します。

于 2013-10-27T19:05:39.157 に答える