Darstellung des JScollPane's funktioniert nicht ... (ungelöst)



  • Hi zusammen!

    Ich hab hier ein Stückchen Programm auf das wirlich essentielle reduziert, aber ich bekomme es dennoch nicht hin!

    Was soll passieren?

    Ich möchte in dem Frame ein JScrollPane haben, mit Scrollbars. In diesem ScrollPane wird ein Canvas angezeigt (als Viewport).

    Ich poste hier mal den Code dazu, aber die Anzeige funktioniert nicht so, wie ich gedacht hätte und ich weiß nicht warum!?!?
    ...Bzw.: Schaut es Euch bitte mal kurz an, es funktioniert nämlich überhaupt nicht so, wie ich dachte!

    Gruß, Tobias

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class testframe extends JFrame {
    
      public testframe() {
          this.pack();
          this.setSize(400,400);
          this.setVisible(true);
          makeView();
      }
    
      public void drawCanvas() {
        Graphics g = c.getGraphics();
        g.setColor(Color.black);
        g.fillRect(0,0,600,600);
      }
    
      // Ansicht basteln
      public void makeView() {
    
        cont = this.getContentPane();
        cont.setLayout(null);
    
        c = new Canvas();
        c.setSize(800,800);
    
        // Pane
        jScrollPane = new JScrollPane();
        jScrollPane.getViewport().add(c, null);
        jScrollPane.setBounds(30,30,300,300);
        cont.add(jScrollPane );
    
        drawCanvas();
    
      }
    
      Canvas c;
      JScrollPane jScrollPane;
      Container cont;
    
    }
    


  • Um dir zu sagen was zu tun ist, damit es so tut wie du dachtest müsstest du uns erst einmal sagen was du erwartet hast. Der Code allein hilft da wenig wenn du uns nicht sagst was eigentlich gemacht werden soll.



  • Hi CengizS,

    im Prinzip will ich ein Canvas der Größe 600*600 in einem Fenster der Größe 300*300. Da das 4* zu groß ist, wollte ich das in ein JScrollPane packen, mit vertikalen und horizontalen Laufleisten.

    Wie gesagt: Leider klappt es wohl nicht...

    Gruß, Tobias



  • änder mal deinen konstruktor folgendermassen:

    public testframe() {
          this.setSize(400,400);
          makeView();
          this.setVisible(true);
      }
    


  • Hi becstift!

    Vielen Dank für Deine Antwort & sorry, daß ich es nicht schon früher gesehen habe!

    Ich werde das heute mal testen... hoffentlich geht's damit!

    Gruß, Tobias


Anmelden zum Antworten