2013-02-11 3 views
0

У меня возникли проблемы с отображением моего класса панели в классе фрейма, который я создал. вот моя панель и моя рамкаРамка не отображает мою панель

public class PasswordCheckerPanel extends JPanel 
{ 
    private String string; 
    private JButton B1, B2, B3; 
    private JLabel Rules, L1, L2, L3, Type, Retype; 
    private JTextField TF1, TF2; 
    private ArrayList<String> AR1 = new ArrayList<String>(); 
    private ArrayList<String> AR2 = new ArrayList<String>(); 
    private JFileChooser Input, Output; 


    public PasswordCheckerPanel() 
    { 
     this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 
     JPanel Panel1 = new JPanel(); 
     TitledBorder Titled1 = BorderFactory.createTitledBorder("Password Checker Rules"); 
     Rules = new JLabel(); 
     Rules.setText("Use the following rules when creating your passwords"); 
     L1= new JLabel(); 
     L1.setText("1. Length must be greater than 6."); 
     L2 = new JLabel(); 
     L2.setText("2. Must contain atleast one alpha character"); 
     L3 = new JLabel(); 
     L3.setText("3. Must contain atleast one numeric character"); 
     Panel1.setBorder(Titled1); 
     Panel1.add(Rules); 
     Panel1.add(L1); 
     Panel1.add(L2); 
     Panel1.add(L3); 
     add(Panel1); 

     JPanel Panel2 = new JPanel(); 
     Type = new JLabel(); 
     Type.setText("Password: "); 
     Retype = new JLabel(); 
     Retype.setText("Re-Type Password: "); 
     TF1 = new JTextField(20); 
     TF2 = new JTextField(20); 
     Panel2.add(Type); 
     Panel2.add(TF1); 
     Panel2.add(Retype); 
     Panel2.add(TF2); 

     add(Panel2); 

     JPanel Panel3 = new JPanel(); 
     B1.setMnemonic('c'); 
     B1.setText("Check Password"); 
     B1.setToolTipText("Check Password"); 
     B1.addActionListener(new ButtonListener()); 

     B2.setMnemonic('f'); 
     B2.setText("Check Password in File"); 
     B2.setToolTipText("Check Password in File"); 
     B2.addActionListener(new ButtonListener()); 

     B3.setMnemonic('e'); 
     B3.setText("Exit"); 
     B3.setToolTipText("Exit"); 
     B3.addActionListener(new ButtonListener()); 

     Panel3.add(B1); 
     Panel3.add(B2); 
     Panel3.add(B3); 

     add(Panel3); 


    } 

} 

Вот мой кадр

public class PasswordCheckerFrame extends JFrame 
{ 
    private PasswordCheckerPanel Panel = new PasswordCheckerPanel(); // Creates a PasswordCheckerPanel object 

    public PasswordCheckerFrame() // PasswordCheckerFrame Constructor 
    { 

      JFrame WindowBox = new JFrame(); // Creates a new JFrame 

      WindowBox.setTitle("Password Checker"); // sets JFrame title 
      WindowBox.setSize(500, 500); // sets JFrame size 
      WindowBox.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // sets the operation as to what happens when you close the gui 
      WindowBox.add(Panel); // adds the Panel to the JFrame 
      WindowBox.pack(); // Packs for size refitting 
      WindowBox.setVisible(true); // sets visibility of the Frame 

     } 
     public static void main(String[] args) 
     { 
      new PasswordCheckerFrame(); // creates an instance of the PasswordCheckerFrame class 
     } 

    } 

Не могли бы вы указать на любые ошибки, я мог бы сделать? Я продолжаю получать тест J Unit, проверяя что-то, что действительно вызывает проблемы с выяснением того, что я делаю неправильно. это код или что-то еще?

ответ

0

Прежде всего используйте правильные соглашения об именах переменных Java. Имена переменных НЕ начинаются с верхнего символа. Только имена классов начинаются с верхнего символа, поэтому ваш код запутывает чтение. Похоже, вы вызываете статические методы класса.

Теперь для вашей проблемы:

private JButton B1, B2, B3; 

Вы никогда не создавать кнопки, чтобы эти переменные равны нулю.

Edit:

Я просто добавил 3 строк кода, чтобы вы вывесили код (и удалил слушателей действий) и код работал нормально, так что я не уверен, что вы делаете.

B1 = new JButton("B1"); // added the creation of the button 
B1.setMnemonic('c'); 
+0

ах извините за конвенциональные вещи. Спасибо за помощь. – user1873746

+0

Я сделал то, что вы рекомендовали, но он все еще не отображает мою панель в окне «Рамка», черт возьми, окно WindowFrame даже не появляется, оно продолжает заканчиваться. – user1873746

+0

@ user1873746, см. Править. Опубликуйте SSCCE, если у вас все еще есть проблемы. – camickr