Announcement

Collapse
No announcement yet.

"adding a window to a container" Error

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • "adding a window to a container" Error

    Hallo,

    habe folgendes Problem: wenn ich eine Klasse1 von Frame ableite und in diesem Frame eine Instanz einer von Frame abgeleiteten Klasse2 mittels

    add(new Klasse2() );

    hinzufügen möchte erhalte, ich o.g. Fehlermeldung. Wenn ich Klasse2 von Panel ableite gehts. Warum ist das so? add() verlangt ein Component als Übergabeparameter. Sowohl Panel als auch Frame sind von Component abgeleitet. Also wieso funktionierts nicht?

  • #2
    habe folgendes Problem: wenn ich eine Klasse1 von Frame ableite und in diesem Frame eine Instanz einer von Frame abgeleiteten Klasse2 mittels
    Würde da jetzt keinen Sinn sehen, einem JFrame ein JFrame zuzuweisen.

    Kindobjekte werden mit

    frame.getContentPane().add(child);

    zugewiesen
    Christian

    Comment


    • #3
      Code:
      import java.awt.Color;
      import java.awt.Dimension;
      import java.awt.Toolkit;
      import javax.swing.GroupLayout;
      import javax.swing.GroupLayout.Alignment;
      import javax.swing.JButton;
      import javax.swing.JPanel;
      import javax.swing.JTextField;
      import javax.swing.LayoutStyle.ComponentPlacement;
      import javax.swing.WindowConstants;
      
      public class NewJFrame extends javax.swing.JFrame {
          private JButton jButton1;
          private JPanel jPanel1;
          private JTextField jTextField1;
      
           public NewJFrame() {
              initComponents();
          }
          @SuppressWarnings("unchecked")
          private void initComponents() {
      
              jButton1 = new JButton();
              jPanel1 = new JPanel();
              jTextField1 = new JTextField();
      
              setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      
              jButton1.setText("jButton1");
      
              jPanel1.setBackground(new Color(102, 255, 0));
      
              jTextField1.setText("jTextField1");
      
              GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
              jPanel1.setLayout(jPanel1Layout);
              jPanel1Layout.setHorizontalGroup(
                  jPanel1Layout.createParallelGroup(Alignment.LEADING)
                  .addGroup(jPanel1Layout.createSequentialGroup()
                      .addContainerGap()
                      .addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                      .addContainerGap(31, Short.MAX_VALUE))
              );
              jPanel1Layout.setVerticalGroup(
                  jPanel1Layout.createParallelGroup(Alignment.LEADING)
                  .addGroup(jPanel1Layout.createSequentialGroup()
                      .addContainerGap()
                      .addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                      .addContainerGap(69, Short.MAX_VALUE))
              );
      
              GroupLayout layout = new GroupLayout(getContentPane());
              getContentPane().setLayout(layout);
              layout.setHorizontalGroup(
                  layout.createParallelGroup(Alignment.LEADING)
                  .addGroup(layout.createSequentialGroup()
                      .addContainerGap()
                      .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                      .addGap(32, 32, 32)
                      .addComponent(jButton1)
                      .addContainerGap(28, Short.MAX_VALUE))
              );
              layout.setVerticalGroup(
                  layout.createParallelGroup(Alignment.LEADING)
                  .addGroup(layout.createSequentialGroup()
                      .addGap(20, 20, 20)
                      .addGroup(layout.createParallelGroup(Alignment.LEADING)
                          .addComponent(jButton1)
                          .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                      .addContainerGap(61, Short.MAX_VALUE))
              );
      
              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
              setBounds((screenSize.width-251)/2, (screenSize.height-215)/2, 251, 215);
          }
      
          public static void main(String args[]) {
              java.awt.EventQueue.invokeLater(new Runnable() {
                  public void run() {
                      new NewJFrame().setVisible(true);
                  }
              });
          }
      
      
      }
      Christian

      Comment


      • #4
        Originally posted by Christian Marquardt View Post
        Würde da jetzt keinen Sinn sehen, einem JFrame ein JFrame zuzuweisen.
        JFrame gehört doch zu swing, oder?

        Ich meinte die Klasse Frame aus dem java.awt:* Package

        Comment


        • #5
          siehe Beispiel

          Ja gehört zu Swing, aber nicht zu dem Package
          Christian

          Comment

          Working...
          X