JScrollPane oder ähnliches in Java Applet einfügen

Dieses Thema JScrollPane oder ähnliches in Java Applet einfügen im Forum "Windows XP Forum" wurde erstellt von Paule27, 11. März 2005.

Thema: JScrollPane oder ähnliches in Java Applet einfügen Hallo, mein Problem ist folgendes: Ich hab mir ein Applet geschrieben, was soweit auch ganz gut funktioniert. Zur...

  1. Hallo,

    mein Problem ist folgendes: Ich hab mir ein Applet geschrieben, was soweit auch ganz gut funktioniert. Zur Laufzeit des Applets kann man Komponenten (JTextField, JCheckBox usw) hinzufügen. Somit kann es passieren, dass die Größe des Applets größer ist als der sichtbare Bereich im Browser.
    Deswegen hab ich nun ein JScrollPane eingefügt. Mein Problem ist nun, dass Button-Klicks seitdem keine Reaktionen mehr verursachen. Hier mein Quellcode:

    Code:
    public class Editor extends JApplet {
       JPanel activeView; // aktives JPanel
       JScrollPane spactiveView;
       
       public void init() {
         activeView = new Login(this);
         spactiveView = new JScrollPane(activeView); // aktives JPanel in JScrollPane einfügen
         getContentPane().add(spactiveView); // JScrollPane einfügen
        
       }
       
       public void changeView(JPanel p) {
         remove(activeView);
         activeView = p;
         spactiveView.add(activeView); // aktives JPanel in JScrollPane einfügen
         getContentPane().add(spactiveView); // JScrollPane einfügen
         validate();
       }
      }
    
    
    Die Klasse Login erbt von JPanel. Ich hab denn noch weitere JPanels die durch Button-Klicks angezeigt werden. Der Code dafür sieht so aus:

    Code:
    public class Login extends JPanel implements ActionListener {
       JLabel username;
       JLabel password;
       JTextField nName;
       JPasswordField pwort;
       JButton login;
       JButton reg;
       Editor owner;
    
       public Login(Editor owner) {
         this.owner = owner;
    
         setLayout(new GridLayout(3,2,10,10));
         setPreferredSize(new Dimension(400, 200));
        
         username = new JLabel(Nutzername: );
         password = new JLabel(Passwort: );
         nName = new JTextField(10);
         pwort = new JPasswordField(10);
         login = new JButton(Login);
         reg = new JButton(neu registrieren);
        
         login.addActionListener(this);
         reg.addActionListener(this);
        
         add(username);
         add(nName);
         add(password);
         add(pwort);
         add(login);
         add(reg);
       }
        
       public void actionPerformed(ActionEvent evt) {
        Object source = evt.getSource(); 
         if (source == login)
          owner.changeView(new MainWindow(owner)); // MainWindow ist dann ein weiteres JPanel
       }
      }
    
    
    Wie gesagt, seitdem ich das JScrollPane eingefügt habe, tut sich nichts mehr, wenn ich auf den login-Button klicke.
    Muss ich denn das JScrollPane mit übergeben? Oder wo liegt der Fehler.

    Vielleicht kann mir ja jemand helfen, wäre nett. Vielen Dank schon einmal im Voraus!

    Gruß Paule!!
     
  2. Ich bin's wieder. Hab jetzt mal bisschen was verändert.

    Dabei entstand ne gute und ne schlechte Nachricht. Die gute: Die Buttons funktionieren wieder. Die schlechte: Ne Scroll-Leiste hab ich immer noch nicht :(

    Hier mein veränderter Code:

    Code:
    public class Editor extends JApplet {
       JPanel activeView; // aktives JPanel
       
       
       public void init() {
         activeView = new Login(this);
         getContentPane().add(activeView); // JPanel einfügen
        
       }
       
       public void changeView(JPanel p) {
         remove(activeView);
         activeView = p;
         getContentPane().add(activeView); // JPanel einfügen
         validate();
       }
      }
    
    
    Code:
    public class Login extends JPanel implements ActionListener {
       JLabel username;
       JLabel password;
       JTextField nName;
       JPasswordField pwort;
       JButton login;
       JButton reg;
       Editor owner;
       JPanel LoginPanel; // in dieses JPanel werden alle Komponenten eingefügt
    
       public Login(Editor owner) {
         this.owner = owner;
         LoginPanel = new JPanel();
    
         LoginPanel.setLayout(new GridLayout(3,2,10,10));
         setPreferredSize(new Dimension(400, 200));
        
        
         username = new JLabel(Nutzername: );
         password = new JLabel(Passwort: );
         nName = new JTextField(10);
         pwort = new JPasswordField(10);
         login = new JButton(Login);
         reg = new JButton(neu registrieren);
        
         login.addActionListener(this);
         reg.addActionListener(this);
        
         LoginPanel.add(username);
         LoginPanel.add(nName);
         LoginPanel.add(password);
         LoginPanel.add(pwort);
         LoginPanel.add(login);
         LoginPanel.add(reg);
        
         add(new JScrollPane(LoginPanel)); //hier wird das JScrollPane eingefügt
        
        
       }
        
       public void actionPerformed(ActionEvent evt) {
        Object source = evt.getSource(); 
         if (source == login)
          owner.changeView(new MainWindow(owner));
       }
      }
    

    Tja und nun die Frage: Warum erscheint kein Scroll-Balken?? Ich kann die Applet-Größe so klein machen wie ich will, es erscheint kein Balken.

    Bitte helft mir !!

    Paule!
     
Die Seite wird geladen...

JScrollPane oder ähnliches in Java Applet einfügen - Ähnliche Themen

Forum Datum
Dateien mit bestimmten Programmen öffnen, z.B. pdf oder jpg Windows 10 Forum 10. Nov. 2016
RAID 1 oder RAID 5? oder? Windows 7 Forum 29. Juli 2016
RDP mit oder ohne VPN? Windows Server-Systeme 27. Juni 2016
USB zu LPT Problem (Treiber oder ka....) Windows XP Forum 12. Apr. 2016
pdf oder jpeg Dateien nicht mit EDGE öffnen Windows 10 Forum 29. März 2016