私は初心者のJavaの男なので、おそらくこの全体のことを完全に間違っています。ソフトウェア工学のクラスのために、この巨大なプロジェクトを行わなければなりません。コードの長さは約 2,000 行なので、これはスケルトン コードです。
public class BookRental extends JFrame{
public Client currentClient = new Client(); // creating client object
//rest of declared variables.
public class Client{ //Client class containing all get/set methods for each variable
private username;
private void setUsername(String u){
username = u;
}
public String getUsername(){
return username;
}
public class LoginPanel extends JPanel{} //Panel to show and receive login info.
public class RegisterPanel extends JPanel{} //Panel to register.
public class MenuPanel extends JPanel{ //Panel showing main menu.
//At this point currentClient will contain values
public ClientInfoPanel(){
initComponents();
}
private void initComponents(){
infoPanelUserName = new JLabel();
infoPanelFullName.setText("Currently logged in as: " + currentClient.getUsername());
}
private JLabel infoPanelUserName;
}
public class ClientInfoPanel extends JPanel{} //Panel to print currentClient info to screen using JLabel objects
private void ViewClientInfoButtonActionPerformed(event){ // Using button in Menu Panel to setVisibility of clientInfoPanel to (true)
//At this point there will be a value for currentClient
clientInfoPanel = new ClientInfoPanel();
this.add(clientInfoPanel);
menuPanel.setVisible(false);
clientInfoPanel.setVisible(true);
}
public BookRental(){initComponents();} //Constructor
private void initComponents(){} // Creates all panels and sets visibility off, besides login
public static void main(String args[]){
new BookRental().setVisible(true);
}
}
私はこれを完全に間違っていると確信していますが、私の質問は、ClientInfoPanel 内で currentClient にアクセスできないのはなぜですか? この JLabel について次のように言います。
infoPanelUserName.setText("Currently logged in as: " + currentClient.getUsername());
ClientInfoPanel は currentClient が存在し、getUsername() メソッドが存在することを認識しますが、次のように表示されます。
"現在ログイン中: "