別のActionListenerクラスからアクションリスナーを実装する方法がわかりません。アプリケーションをいくつかのクラスに分けました。メインクラスはFrameクラスを呼び出して、すべてのボタンを備えたGUIを作成します。ボタンが押されたときに、アクションを実行するためにActionListenerメソッドにデータを送信する必要があります。必要なデータを送信できないよりもFrameクラスにActionListenerを追加した場合、main()メソッドにActionListenerを追加した場合、Frameクラスを呼び出した後、不器用に感じます。コードは次のとおりです。publicclassMain{
public static Client klijent;
public static void main(String[] args) {
FrameBuilder frame= new FrameBuilder();
frame.frameBuild();
frame.send.addActionListener(new SendBttnListener(ClientBuilder(klijent,frame.txt.getText())));
try {
frame.statLabel.setText(InetAddress.getLocalHost().getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
Udp udp;
// klijent = null;
while(true){
klijent=new Client();
udp=new Udp();
klijent=udp.packageIN();
if(klijent!=null){
frame.statLabel.setText("");
String str=new String(klijent.getBajt(),0,klijent.bajt.length);
str=str.trim();
frame.statLabel.setText(str+"@...@"+klijent.clientAddress.toString()+":"+klijent.clientPort+"-->Duljina:"+klijent.bajt.length);
}
}
}
public static Client ClientBuilder(Client klijent2, String str){
klijent.setBajt(str.getBytes());
return klijent2;
}
ご覧のとおり、クライアントオブジェクトは大幅に変更される可能性があり(UDPサーバー)、次のパッケージを待つときにクリアされます。後で、クライアントのリストを実装して、FrameクラスにActionリスナーを追加するのはばかげているようです。GUIを構築するためのseparetクラスを作成したときに、うまくいきませんでしたか?何かアドバイス?
前もって感謝します....