Здесь я хотел выполнить действие при нажатии кнопки, это довольно просто, но главная проблема заключается в том, что он должен выполняться в расширенном JPanel. Возможно, это простое решение, например, добавить слушателя действий к этой конкретной кнопке и вызвать событие, связанное с действием, но мой случай не такой, у меня есть 4 кнопки (t1, t2, t3, t4), все эти кнопки должны работать в одном Событие ActionPerfomed ae (посмотрите сегмент кода). И позже вы можете увидеть код, который вызывает другие JButtons tr и rf, вызывающие actionlistener и события, связанные с событиями.Выполнение ActionListener в JPanel
для ясного понятности вы можете иметь взгляд на код ...
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);
}
Моя проблема здесь я не мог реализовать ActionListener в качестве основного класса уже простирающейся JPanel. Я просто пытаюсь работать с Jbuttons :: хотел выполнить одно действие, когда кнопки (t1 | t2 | t3 | t4) и JButtons (tr | rf) нажаты в хронологическом порядке.
заранее спасибо ..
Смотрите также [* Как использовать действия *] (Http: //docs.oracle.com/javase/tuto риал/uiswing/разные/action.html). – trashgod
Есть ли необходимость в расширении 'JPanel'? я не могу просто использовать экземпляр и добавить кнопки и т. д., как это –