ここでは、ボタンが押されたときにアクションを実行したかったのですが、非常に簡単ですが、主な問題は、拡張された JPanel 内で実行することです。その特定のボタンにアクションリスナーを追加してactionperformedイベントを呼び出すような簡単な解決策があるかもしれませんが、私の場合はそうではありません.4つのボタン(t1、t2、t3、t4)があります。イベント ae (コードのセグメントを見てください)。そして後で、actionlistener および actionperformed イベントを呼び出す別の JButton の tr および rf を呼び出すコードを見ることができます。
明確に理解できるように、コードを一目見ることができます...
class Tracker extends JPanel
{
public static void main(String[] args) {
new Tracker(); }
public Tracker()
{
JButton tr=new JButton("TRACKER APPLET");
tr.setBounds(720,170,100,20);
JButton rf=new JButton("REFRESH");
rf.setBounds(200,170,100,20);
boolean tc1=false,tc2=false,tc3=false,tc4=false;
JButton t1=new JButton(" ");
t1.addActionListener(this);
JButton t2=new JButton(" ");
t2.addActionListener(this);
JButton t3=new JButton(" ");
t3.addActionListener(this);
JButton t4=new JButton(" ");
t4.addActionListener(this);
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==t1)
{
tc1=true;
}
if(ae.getSource()==t2)
{
tc2=true;
}
if(ae.getSource()==t3)
{
tc3=true;
}
if(ae.getSource()==t4)
{
tc4=true;
}
}
tr.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex){}
catch(InstantiationException ex){}
catch(IllegalAccessException ex){}
catch(UnsupportedLookAndFeelException ex) {}
//some food here....
}
});
}
});
rf.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
EventQueue.invokeLater(new Runnable() {
@Override
public void run()
{
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (ClassNotFoundException ex){}
catch(InstantiationException ex){}
catch(IllegalAccessException ex){}
catch(UnsupportedLookAndFeelException ex) {}
//some extra work runs here...
}
});
}
});
add(tr);
add(rf);
add(t1);
add(t2);
add(t3);
add(t4);
}
ここでの問題は、すでに JPanel を拡張しているメイン クラスとして ActionListener を実装できなかったことです。私はちょうどJbuttonsで仕事をしようとしている::ボタン(t1 | t2 | t3 | t4)とJButtons(tr | rf)が時系列で押されたときに単一のアクションを実行したかった..
前もって感謝します..