我正在使用Java創建一個GUI應用程序。主框架中有不同的部分,每個部分都有特定的功能。標題面板包含提交,撤消,隨機播放,幫助和退出按鈕。下面是示例代碼:檢查JButton是否在特定的JPanel中
JPanel header = new JPanel();
JButton submit = new JButton("Submit");
header.add(submit);
JButton undo= new JButton("Undo");
header.add(undo);
JButton shuffle= new JButton("Shuffle");
header.add(shuffle);
JButton help= new JButton("Help");
header.add(help);
JButton quit = new JButton("Quit");
header.add(quit);
再往下我的代碼,我需要檢查點擊的按鈕是不是在頭板(也有其他面板的按鈕太)。
public void actionPerformed(ActionEvent e)
{
String clicked = e.getActionCommand();
if(!clicked.equals("Submit") && !clicked.equals("Undo") && !clicked.equals("Help")&& !clicked.equals("Quit") && !clicked.equals("Shuffle")){
//some code here
是否有任何替代方法檢查點擊的按鈕是否不在標題面板中?我需要在包含更多按鈕的另一個面板中執行類似的操作。我相信,使用IF語句來檢查每個按鈕是低效和不整潔的。
如果您需要以不同的方式對待它們,請勿對標題面板按鈕使用相同的回調;設置不同的'ActionEvent'偵聽器 – flakes
使用事件源並比較實例而不是字符串。 – Mordechai
嗯,我不明白你面臨的問題是什麼。使用一個動作偵聽器或多個偵聽器與包含它們的父容器無關。爲什麼需要檢查按鈕是否在特定的JPanel中? – user3437460