VD mình có MenuPanel mp = new MenuPanel() màu ĐỎ, GamePamel gp = new Gamepanel màu XANH là 2 panel ở bên trong MainPanel. Muốn click panel này thì panel kia hiện ra thì làm ntn?
Hai instance trong cùng một lớp cha, khác lớp con sẽ tương tác với nhau như thế nào?
Bạn có thể tham khảo cách redux thực hiện như hình sau:
Store có thể chính là MainPanel hoặc là 1 thuộc tính của MainPanel.
5 Likes
Không biết bạn muốn ngôn ngữ gì, mình dùng mã giả tương tự C# nhé:
Class Panel:
class Panel
{
public Panel followingPanel {get; set;}
public void onClick()
{
this.followingPanel.show();
}
}
Trong một component nào đó:
mp.followingPanel = gp;
gp.followingPanel = mp;
5 Likes
thử dùng giải pháp dùng case với hàm Visibible
// bar menu
JMenuBar mainMenu= new JMenuBar();
// mục menu đỏ
JMenu redMenu= new JMenu("RedMenu");
// phần màu xanh
JPanel bluePanel= new JPanel();
JFrame.add( bluePanel);
mainMenu.add( redMenu);
redMenu.addActionListener(new ActionListener(){
public void ActionPerformed( ActionEvent e){
// nếu đang bị ẩn thì hiện
if( bluePanel.getVisible()==false){
bluePanel.setVisible( true);
// ngược lại
} else{
bluePanel.setVisible( false);
}
}
}
Trong Android dùng Intent, trong iOS dùng NSNotification.
3 Likes