Einige Javafragen

Status
Nicht offen für weitere Antworten.

Coleen

Mitglied
Guten Morgen
In nächster Zeit werde ich wohl noch einige kleine Fragen haben. Habe natürlich schon im Forum rumgestöbert, aber einige Fragen sind noch offen geblieben. Um nicht unnötig vollzuspamen werd i alles hier reinhauen.

Momentan stehe ich im Kleinkrieg mit der JList :? Also das ist so: meine JList hat etwa 10 Zeilen. Davon werden 5 angezeigt. Nun habe ich die Scrollbar nicht hinbekommen :eek:/ darum ka ma die anderen Zeilen nicht anwählen. Bevor ich wegen dem total durchdreh, wollt i ma euch frage :)

Vorerst wars das mal, ich komme wieder höhö, naja...
liebe Grüsse
Coleen
 

Illuvatar

Top Contributor
Ich denke, das müsste so funktionieren:

Code:
JList jlist = new JList 
    (new Object[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"/*Oder wie deine Elemente eben heißen*/});
JScrollPane jsp = new JScrollPane 
    (jlist, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
getContentPane().add (jsp);

Schau mal hier.

Wieso einige Javafragen?

PfM
 

Coleen

Mitglied
Hallo
Das habe ich auch schon versucht, habe immernoch nen Fehler ???:L ich tuh sicher die ScrollPane falsch dazu adden.

Ich zeig dir mal den Codeausschnitt :oops:
Code:
...

//user1Listmodel ist ein DefaultListModel der da bereits gefüllt worden ist
user1List = new JList(user1Listmodel);
JScrollPane jsp = new JScrollPane(user1List, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

//benutze hier keinen Layoutmanager
user1List.setBounds(10,40,150,100);

//Da adde ich die JList. Hab mir gedacht das geht mit der ScrollPane gleich *g*
//tabPanel1.add(jsp);
//aber wird nichts angezeigt. Ist hier echt der Fehler?
tabPanel1.add(user1List);

...

Oh die Javadoku ist mir schon bekannt, aber ich kann mich mit der nicht anfreunden. Hab sie schon einige male studiert und naja :lol: verwirrung herrschte :p

Ich werde eben noch mit mehr Fragen kommen, wenn dir das recht ist *g* Aber alles der Reihe nach.

liebe Grüsse
Coleen
 
B

Beni

Gast
Lieber Coleen
Du hast den Fehler selbst erkannt, Illuvatar hat Dir ein korrektes Beispiel gegeben, ...
jetzt musst Du nur noch ein bisschen denken :evil:

Tipp: vergleich mal was Illuvatar und was Du mit dem JScrollPane machen:
Illuvatar hat gesagt.:
 

Coleen

Mitglied
Hallo
Jo sein Beispiel habe ich ja auch ausprobiert, aber die Scrollbar wurde nicht angezeigt :( habe auch schon
- getContentPane().add(jsp);
- tabPanel1.add(jsp);
- add(jsp);
ausprobiert. Gestern habe ich noch andere Dinge ausprobiert (aus dem Inet Beispiele angeschaut etc.), trotzdem zeigt der das nicht an. Musst mi nich so bös anschaun, mittlerweile bin ich schon selber richtig genervt über meinen Code, weils schlussendlich 100pro wieder irgend ein plöder Fehler ist, aber grrr komm nich drauf.

Coleen
 
B

Beni

Gast
Na in diesem Fall: entschuldige bitte. :oops: (Manchmal gibt es in diesem Forum Leute, die erwarten, dass man ihnen jeden Schritt einzeln erklärt, und dann such ich ein Opfer an dem ich...).

Poste doch mal ein bisschen mehr Code :### , vielleicht steckt der Fehler auch an einer anderen Stelle (und die Liste ist nur ein Symptom).

Gruss Beni
 

Coleen

Mitglied
Hai
Schon gut, ich glaub ich weiss was du meinst hehe :)

Also, ich arbeite mit JTabbedPane. Im Construvtor rufe ich neuZugriff() auf und erstelle darunter die Tabs. Es wird alles angezeigt so wie ich es wollte, nur eben das Sorgenkind ScrollPane zickt rum.

Code:
 public void neuZugriff(){
         //Panel für das Tab
         tabPanel1 = new JPanel();
         tabPanel1.setLayout(null);

         JLabel user1 = new JLabel("User 1");
         user1.setBounds(10,10,100,25);
         tabPanel1.add(user1);

         ....
         // hier wird aus einer Datenbank mit addElement dem DefaultListModel jeweils eine neue Zeile hinzugefügt.
         ....
         
		//user1Listmodel ist das DefaultListModel
		user1List = new JList(user1Listmodel);
		JScrollPane jsp = new JScrollPane(user1List, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

		user1List.setBounds(10,40,150,100);

		//ja und hier habe ich scho alles mögliche mit dem adden versucht. vielleicht liegts trotzdem nich daran.

		tabPanel1.add(user1List);
}

:? ich vermute mal, dem passts nicht, dass ich ohne Layoutmanager arbeite.

lg Coleen
 
B

Beni

Gast
Dieser Code erzeugte ein paar ScrollBars:
Code:
package testing;

import javax.swing.*;

public class ListTest2 extends JFrame {
  private JTabbedPane pane;

  public ListTest2() {
    pane = new JTabbedPane();
    getContentPane().add( pane );
    setBounds( 10, 10, 500, 500 );
    setVisible( true );
    setDefaultCloseOperation( EXIT_ON_CLOSE );

    neuZugriff( "blabla" );
    neuZugriff( "juhuu" );
    neuZugriff( "trallala" );
  }

  public void neuZugriff( String title ){
    //Panel für das Tab
    JPanel tabPanel1 = new JPanel();
    tabPanel1.setLayout(null);

    JLabel user1 = new JLabel("User 1");
    user1.setBounds(10,10,100,25);
    tabPanel1.add(user1);

    // hier wird aus einer Datenbank mit addElement dem DefaultListModel jeweils eine neue Zeile hinzugefügt.
    DefaultListModel user1ListModel = new DefaultListModel();
    for( int i = 0; i < 50; i++ )
      user1ListModel.addElement( String.valueOf( Math.random() ));

    //user1Listmodel ist das DefaultListModel
    JList user1List = new JList( user1ListModel );
    JScrollPane jsp = new JScrollPane(user1List, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

    jsp.setBounds(10,40,150,100);   //>>> Hier Veränderung

    //ja und hier habe ich scho alles mögliche mit dem adden versucht. vielleicht liegts trotzdem nich daran.

    tabPanel1.add( jsp );   //>>> Hier die wichtige Veränderung

    pane.add( title, tabPanel1 );
  }
}


Und ein LayoutManager wäre wirklich hübsch, da hast du recht 8)

mfg Beni
 

Illuvatar

Top Contributor
Weshalb arbeitest du überhaupt ohne Layoutmanager?

Du musst auf jeden Fall
Code:
tabPanel1.add(jsp)
benutzen.

Wird eigentlich die JList bei dir angezeigt, oder gar nix?

Edit: War ich wohl langsamer...
 
B

bygones

Gast
verhaut nicht setBounds hier die Anzeige ??

Mein Tipp:
Verwende einen LayoutManager und setze die Größe der Liste / ScrollPane über setPreferredSize() !!
 
B

Beni

Gast
@deathbyaclown

Wenn die JList dem JScrollPane übergeben wurde, interessiert sich das ScrollP nur noch für die PrefferedSize der JList.
Ich sehe das Problem darin, dass hier nicht das ScrollP, sondern die JList an das Panel geadded wird (und das wird die JList wieder vom ScrollP trennen).
 
B

bygones

Gast
oh - man hätte mehr Code lesen sollen...

:oops:
diesmal ich *pflockinsHerz* :wink:
 

Coleen

Mitglied
Guten Morgen
Beni danke, seit das JList zeug lauft hat sich bei mir im Kopf ein Knopf gelöst :)

*g* ich und diese Layoutmanager verstehn uns nicht so gut. Für mein kleines Programm wollte ich darum die wenigen Komponente von Hand draufpacken. Das war mein einziger Grund für den Verzicht eines Layoutmanagers :lol:

ui ich hoff es macht nix, wenn ich vielleicht ma mit nicht- GUI Fragen komme. Aber im Moment läuft ja alles.

Dankschön
Coleen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben