Я не могу заставить свой JFrame из основного класса отображать JPanel из другого класса. Все компилируется без ошибок. Это код моего основного класса, который расширяет JFrame:
public OnlineCarSalesSystem(){
setTitle("Online Car Sales System");
setVisible(true);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(new Login());
}
public static void main(String[] args) {
new OnlineCarSalesSystem();
}
В приведенном выше коде я добавил add(new Login());
, но эта панель не отображается в моем JFrame. И в приведенном ниже коде я расширил свой класс с помощью JPanel. А это код класса JPanel:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Login extends JPanel{
JLabel loginLabel = new JLabel("Login ID");
JLabel passwordLabel = new JLabel("Password");
JTextField loginTextField = new JTextField();
JPasswordField passwordTextField = new JPasswordField();
JButton submitButton = new JButton("Submit");
JButton registration = new JButton("new Registration");
JLabel noaccountLabel = new JLabel("No Account yet!!!");
public void Login(){
setBounds(0,0,500,500);
setBackground(Color.red);
setVisible(true);
loginLabel.setBackground(Color.cyan);
passwordLabel.setBackground(Color.cyan);
loginTextField.setBounds(680, 103,90,20);
add(loginTextField);
loginLabel.setBounds(600, 100,90,30);
add(loginLabel);
passwordTextField.setBounds(680, 153,90,20);
passwordTextField.setEchoChar('*');
add(passwordTextField);
passwordLabel.setBounds(600, 150,90,30);
add(passwordLabel);
add(submitButton);
submitButton.setBounds(640,200,90,30);
submitButton.addActionListener(new ActionListener() { //////Submit Button
public void actionPerformed(ActionEvent e) {
}
});
add(registration);
registration.setBounds(638,270,96,30);
add(noaccountLabel);
noaccountLabel.setBackground(Color.cyan);
noaccountLabel.setBounds(640,250,90,30);
registration.addActionListener(new ActionListener() { //////registration Button
public void actionPerformed(ActionEvent e) {
}
});
}
}
null
. - person Andrew Thompson   schedule 17.09.2019public void Login(){
Если вы предполагаете, что в качестве конструктора это должно бытьpublic Login(){
.. - person Andrew Thompson   schedule 17.09.2019JFrame
илиJPanel
. Кроме того, учитывая, что это вход в систему, фрейм вместо этого должен бытьJDialog
илиJOptionPane
. - person Andrew Thompson   schedule 17.09.2019