scrollpanel problem

Status
Nicht offen für weitere Antworten.

beh

Mitglied
Hallo freunde !

ich hab folgendes problem und ich hoffe das ich von euch eine paar ideen bekommen könnte ! also folgendes :

ich hab in java ein window mit horizontale & vertikale scrollpanels programmiert aber das problem ist das mein schieberegler(horizontale) nur dann sichbar ist wenn das fenster viel zu klein ist wobei das schieben auch nichts bringt da derkomplette inhalt imfenster nicht sichtbar ist.

bin echt amverzweifeln ! wär echt coolwenn mir jemand paar tipps geben könnte !

danke
 
Die Scrollbars am ScrollPanel werden nur sichtbar, wenn nicht alles so hineinpasst. Probleme macht das, wenn ein Layoutmanager o.ä. die Komponenten im Scrollpanel so anordnet, dass sie dennoch hineinpassen. Probier mal per Hand die PerefferdSize der Komponent innen drinnen zu ändern.
 
Hi.danke erstmal ! hier der codesnippsel



-----------------------------------------------------------------------


protected void createComponents() {
if (log.isTraceEnabled())
log.trace("Komponenten werden erzeugt...");
getRootPane().setLayout(new BorderLayout());
//getContentPane().setLayout(new BorderLayout());
// Favoritenliste
this.bookmarklist = new TimesheetBookmarklist(this, this.timesheet,
getTimesheetSelectionHandler());



JScrollPane bookmarkListScrollPane = new JScrollPane(this.bookmarklist);
//getRootPane().add(bookmarkListScrollPane, BorderLayout.CENTER);
//bookmarklistView.createVerticalScrollBar().

//bookmarkListScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );
getRootPane().add(bookmarkListScrollPane, "Center");
//getContentPane().add(bookmarkListScrollPane, "Center");
bookmarkListScrollPane.setViewportView(bookmarklist);
if (log.isTraceEnabled())
log.trace("...Komponenten wurden erzeugt.");
}

public void applyFilter(TimesheetFilter filter) {

}

}
 
Dein Code funktioniert bei mir:
Code:
package text;
/*
 * TextScrollingDemo.java
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class TextScrollingDemo extends JFrame {
    private int count;
    private Object timesheet;
    private TimesheetBookmarklist bookmarklist;
    public TextScrollingDemo() {
        super("TextScrollingDemo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        createComponents();
    }
    protected void createComponents() {
        getRootPane().setLayout(new BorderLayout());
//getContentPane().setLayout(new BorderLayout());
// Favoritenliste
        this.bookmarklist = new TimesheetBookmarklist(this, this.timesheet,
                getTimesheetSelectionHandler());
        JScrollPane bookmarkListScrollPane = new JScrollPane(this.bookmarklist);
//getRootPane().add(bookmarkListScrollPane, BorderLayout.CENTER);
//bookmarklistView.createVerticalScrollBar().
//bookmarkListScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );
        getRootPane().add(bookmarkListScrollPane, "Center");
//getContentPane().add(bookmarkListScrollPane, "Center");
        bookmarkListScrollPane.setViewportView(bookmarklist);
    }
    public static void main(String args[]) {new TextScrollingDemo().setVisible(true);}
    private ListSelectionListener getTimesheetSelectionHandler() {
        ListSelectionListener ls = new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                if(e.getValueIsAdjusting())return ;
                System.out.println(bookmarklist.getSelectedValue());
            }
        };
        return ls;
    }
    class TimesheetBookmarklist extends JList{
        public TimesheetBookmarklist(Object o1, Object o2, ListSelectionListener sl){
            super();
            addListSelectionListener(sl);
            DefaultListModel model = new DefaultListModel();
            for (int i = 0; i < 30; i++) {
                model.addElement((i+1)+" M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M X ");
            }
            setModel(model);
        }
    }
}
 
ahmm...woran könnte es dann liegen??? kannst du mir das bitte sagen??? ich bin am verzweifeln
 
Hallo
Die Benutzeroberfläche besteht aus ein Hauptfenster und mehrere innere Fenster, die alle Unterklasse von der Klasse TimesheetinteralFrame sind. Alle anderen Fenster sind OK außer Favoritenliste, von deren Klasse ich eine Methode dir geschickt habe.
Ich schicke dir die Beiden klasse vielleicht kann das helfen.




package de.collogia.collinor.timesheet.gui.bookmarklist;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JScrollPane;

import de.collogia.collinor.timesheet.Bookmark;
import de.collogia.collinor.timesheet.Timesheet;
import de.collogia.collinor.timesheet.action.TimesheetSelectionHandler;
import de.collogia.collinor.timesheet.filter.TimesheetFilter;
import de.collogia.collinor.timesheet.gui.TimesheetFrame;
import de.collogia.collinor.timesheet.gui.TimesheetInternalFrame;
import de.collogia.collinor.timesheet.gui.TimesheetView;
import de.collogia.log4j.ColLogger;
import de.collogia.util.ColRes;

/**
* Klasse für die Darstellung der Favoritenliste
*
* @author Klaus Roeder
* @version 2.0
*/
public class TimesheetBookmarklistFrame extends TimesheetInternalFrame {

private static final long serialVersionUID = -1467716427288685869L;

// log4j
private static ColLogger log = (ColLogger) ColLogger
.getLogger(TimesheetBookmarklistFrame.class);

/*
* ******************************************************************************************
* KONSTRUKTOREN
* ******************************************************************************************
*/

/**
* Default Konstruktor Aufbau der graphischen Komponenten
*
* @param view
* Die aktuelle Sicht auf das Timesheet
* @param propertyName
* Eindeutiger Name zur Sicherung und zum Laden der Properties
* @param timesheet
* Das darzustellende Timesheet
* @param restoreProperties
* Flag zur Angabe, ob das Fenster aus den Properties heraus
* restauriert werden soll
* @param timesheetSelectionHandler
* Der Handler für das momentan ausgewählte Timesheet Objekt
*/
public TimesheetBookmarklistFrame(TimesheetFrame parent, TimesheetView view, String propertyName,
Timesheet timesheet, boolean restoreProperties,
TimesheetSelectionHandler timesheetSelectionHandler) {
super(ColRes.getString("timesheetBookmarklist.title", "Favoriten"),
view, propertyName, restoreProperties, true,
timesheetSelectionHandler);
this.parent = parent;
this.timesheet = timesheet;
createComponents();
}






import java.awt.Dimension;
import java.awt.Rectangle;

import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.JToggleButton;
import javax.swing.border.Border;

import de.collogia.collinor.timesheet.Employee;
import de.collogia.collinor.timesheet.action.TimesheetSelectionHandler;
import de.collogia.collinor.timesheet.filter.TimesheetFilter;
import de.collogia.log4j.ColLogger;
import de.collogia.print.ColPrintHandler;
import de.collogia.util.ColRes;

/**
* Abstraktes Frame für das Auslesen und Speichern von Ressourcen im Timesheet
* @author Bernd Stevens
* @version 2.1
*/
public abstract class TimesheetInternalFrame extends JInternalFrame {

// log4j
private static ColLogger log = (ColLogger)ColLogger.getLogger(TimesheetInternalFrame.class);

public static Dimension maxButtonSize = new Dimension(ColRes.getInt("timesheetFrame.toolbar.buttonSize.width", 25),
ColRes.getInt("timesheetFrame.toolbar.buttonSize.height", 25));
public static Border buttonBorder = new javax.swing.border.EmptyBorder(1, 1, 1, 1);

/*
*******************************************************************************************
* KONSTRUKTOREN
*******************************************************************************************
*/

/**
* Default Konstruktor
* Aufbau der graphischen Komponenten
* @param title Der Titel des Fensters
* @param view Die aktuelle Sicht auf das Timesheet
* @param propertyName Eindeutiger Name zur Sicherung und zum Laden der Properties
* @param restoreProperties Flag zur Angabe, ob das Fenster aus den Properties heraus restauriert werden soll
* @param closeable Flag zur Angabe, ob das Fenster geschlossen werden darf
* @param timesheetSelectionHandler Der Handler für das momentan ausgewählte Timesheet Objekt
*/
public TimesheetInternalFrame(String title, TimesheetView view, String propertyName, boolean restoreProperties,
boolean closeable, TimesheetSelectionHandler timesheetSelectionHandler) {
super(title, true, closeable, true, true);
this.view = view;
this.propertyName = propertyName;
this.timesheetSelectionHandler = timesheetSelectionHandler;
ImageIcon icon = ColRes.getImageIcon("internalFrame.icon", null);
if (icon != null) setFrameIcon(icon);
if (restoreProperties) {
restoreProperties();
if (!isIcon()) setVisible(true);
else getDesktopIcon().setVisible(true);
} else {
setBounds(0,0,200,300);
}
}

/*
 
beh hat gesagt.:
..Ich schicke dir die Beiden klasse vielleicht kann das helfen.
Tipp: Wenn du hier etwas Code postest, werden die Chancen um Hilfe zu bekommen stark verbessert
wenn er kurz ist, aber auch selbständig und kompilierbar.
Auf diese Weise können andere den Code kompilieren und ausführen ohne zusätzlichen
Testcode erfinden zu müssen. Mit Hilfe der IDEs, Debuggers usw. können die Leute viel mehr machen
als mit dem puren Augapfel auf einem nicht kompilierenden Schnipsel, besonders weil das Problem
fast nie da ist wo der Fragesteller denkt daß es ist.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben