horizontale scrollbar

Status
Nicht offen für weitere Antworten.
G

gast

Gast
Hallo,
ich mache mir ein mir eine Tabelle und mein Problem ist, dass die Spalten so nur sehr schmal sind. deshalb möchte ich horizontal scrollen können.
Kann mir einer sagen wie ich das mache, ich bekomme es nicht hin.

Hier mein code

Code:
package Tabellen;

import java.util.ArrayList;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import Listener.ComboListener;
import SQL.Get;

public class BK_chem extends JFrame {

	/**
	 * Launch the application
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			BK_chem frame = new BK_chem();
			frame.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private JTable m_table;
	private DefaultTableModel m_model;

	/**
	 * Create the frame
	 */
	public BK_chem() {
		super("Ergebnisse der chem. Umschmelzanalyse");
		getContentPane().setLayout(null);
		setBounds(100, 100, 750, 375);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		final JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(0, 0, 745, 350);
		getContentPane().add(scrollPane);

		// tabelle erstellen
		m_table = new JTable();
	
		// modell für die tabelle um sie zu modellieren
		m_model = new DefaultTableModel(new Object[20][23], new String[]{"Probennummer", "C", "Si", "Mn", "P", "S", "Ni", "Cu", "Mg", "Cr", "Co", "V", "B", "N", "Mo", "Ti", "Nb", "Zn", "Fe", "Al", "Sn", "Pb"});
		m_table.setModel(m_model);
		
	}

}


und meine 2.Frage:
kann ich nur die erste spalte breiter machen als die anderen?
am besten wäre es wenn die erste spalte stehen bleiben würde wenn ich scrolle, damit ich die probennr noch sehe wenn ich die elemente ganz rechts eingebe.

wäre schon wenn mir das einer am code zeigen könnte oder ein beispiel geben

danke
 
G

Gast

Gast
wie mache ich denn meine tabelle breiter?
wenn ich die mit setbounds größer mache zeigt er sie mir trotzdem nur in der breite des frames an. ich bekomme zwar den scrollbalken hin aber der bringt mir ja auch nix wenn ich die tabelle nicht breiter als das frame bekomme
 
S

SlaterB

Gast
nach einem Tag ist eine Nachfrage berechtigt, war doch nicht unfreundlich,
ich kannte den Thread noch nicht,

eine Möglichkeit ist
Code:
public BK_chem()
    {
        super("Ergebnisse der chem. Umschmelzanalyse");
        getContentPane().setLayout(null);
        setBounds(100, 100, 750, 375);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        // tabelle erstellen
        m_table = new JTable();

        // modell für die tabelle um sie zu modellieren
        m_model = new DefaultTableModel(new Object[20][23], new String[]
            {"Probennummer", "Cddddddd", "Si", "Mn", "P", "S", "Ni", "Cu", "Mg", "Cr", "Co", "V", "B", "N", "Mo", "Ti", "Nb", "Zn", "Fe",
             "Al", "Sn", "Pb"});
        m_table.setModel(m_model);

        JPanel p = new JPanel();
        p.setLayout(new BorderLayout());
        p.add(m_table.getTableHeader(), BorderLayout.PAGE_START);
        p.add(m_table, BorderLayout.CENTER);

        final JScrollPane scrollPane = new JScrollPane(p);
        scrollPane.setBounds(0, 0, 745, 350);
        getContentPane().add(scrollPane);

    }


steht hier zwar nicht wirklich direkt, aber trotzdem empfehlenswert:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
 
G

Gast

Gast
habs jetz so hinbekommen mit der scrollbar wie du gesagt hast, habe aber ein anderes "problem jetzt dabei"
mir gefällt nicht dass die spalten alles s breit sind, aber ich bekomme es nicht hin die tabelle insgesamt schmaler zu machen.
wie kann man das machen?
mir würde nur einfallen für jede spalte einzeln die breite anzugeben so wie ich es für die erste mache, aber es gibt doch bestimmt eine möglichkeit das anders zu machen oder?

hier mein code:
Code:
public BK_chem() {
		super("Ergebnisse der chem. Umschmelzanalyse");
		setBounds(100, 100, 750, 300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		
		// tabelle erstellen
		m_table = new JTable();
		
		// modell für die tabelle um sie zu modellieren
		m_model = new DefaultTableModel(new Object[1][1], new String[]{"Probennummer", "C", "Si",
				"Mn", "P", "S", "Ni", "Cu", "Mg", "Cr", "Co", "V", "B", "N", "Mo", "Ti", "Nb", "Zn",
				"Fe", "Al", "Sn", "Pb"});
		m_table.setModel(m_model);
		
		// erste Spalte breiter machen 
		m_table.getColumnModel().getColumn(0).setPreferredWidth(100);
		
		// Listener um neue spalten einzufügen
		m_model.addTableModelListener(new TableListener(m_table, m_model));
		
		
		// Panel anlegen
		final JPanel panel = new JPanel(new BorderLayout());
		panel.add(m_table.getTableHeader(), BorderLayout.PAGE_START);
		panel.add(m_table);
		
		// ScrollPane anlegen
		final JScrollPane scrollPane = new JScrollPane(panel);
		getContentPane().add(scrollPane);
		

	}
 
S

SlaterB

Gast
ich persönlich kann dir kein Patentrezept nennen,
es funktioniert nach probieren mit

panel.setPreferredSize(new Dimension(950,700));

bedenke bei sowas auch immer alle 4 derartigen Operationen:

// panel.setSize(new Dimension(1400, 700));
// panel.setMinimumSize(new Dimension(1400, 100));
// panel.setMaximumSize(new Dimension(1400, 100));

auf die JTable oder hier das umgebene Panel aufrufen,
hängt auch von den verwendeten Layouts ab usw.
 
G

Gast

Gast
ich habs mit allen setsize-methoden auf panel und tabelle probiert, aber irgendwie klappt das nicht wirklich

ich weiß nicht ob ich zu blöd bin oder was ich falsch mache, wäre schön wen sich das nochmal jemand angucken könnte

lg, sabine
 
S

SlaterB

Gast
Code:
public class BK_chem
    extends JFrame
{

    /**
     * Launch the application
     * 
     * @param args
     */
    public static void main(String args[])
    {
        try
        {
            BK_chem frame = new BK_chem();
            frame.setVisible(true);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    private JTable m_table;
    private DefaultTableModel m_model;

    public BK_chem()
    {
        super("Ergebnisse der chem. Umschmelzanalyse");
        setBounds(100, 100, 750, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        // tabelle erstellen
        m_table = new JTable();

        // modell für die tabelle um sie zu modellieren
        m_model = new DefaultTableModel(new Object[1][1], new String[]
            {"Pr", "Cd", "Si", "Mn", "P", "S", "Ni", "Cu", "Mg", "Cr", "Co", "V", "B", "N", "Mo", "Ti", "Nb", "Zn", "Fe",
             "Al", "Sn", "Pb"});
        m_table.setModel(m_model);

        // erste Spalte breiter machen
        m_table.getColumnModel().getColumn(0).setPreferredWidth(100);

        // Listener um neue spalten einzufügen
        // m_model.addTableModelListener(new TableListener(m_table, m_model));

        m_table.setMaximumSize(new Dimension(400, 100));
        // Panel anlegen
        final JPanel panel = new JPanel(new BorderLayout());

//        panel.setSize(new Dimension(1400, 700));
        panel.setPreferredSize(new Dimension(950,700));
//        panel.setMinimumSize(new Dimension(1400, 100));
//        panel.setMaximumSize(new Dimension(1400, 100));

        panel.add(m_table.getTableHeader(), BorderLayout.PAGE_START);
        panel.add(m_table);

        // ScrollPane anlegen
        final JScrollPane scrollPane = new JScrollPane(panel);
        getContentPane().add(scrollPane);


    }


}

funktioniert, mehr kann man dazu nicht sagen
 
G

Gast

Gast
danke, aber was mir da nicht so ganz gefällt ist, dass der scrollbalken rechts schon von anfang an da ist, ich hätte es gerne, dass der erst kommt wenn keine zeilen mehr so oin das fenster passen
 
S

SlaterB

Gast
das liegt an der Höhe 700 in setPreferredSize, bei unter 280 bist du kleiner als das ScrollPane, erzwingst also keine ScrollBar,
kannst auch Höhe 1 nehmen,
einfach mal alles ausprobieren....
 
G

Gast

Gast
das hab ich gestern schon ausprobiert, aber wenn ich die prefferedsize kleiner mache bekomme ich keine scrollbarbar mehr wenn ich mehr zeilen habe als auf dem frame sichtbar,

kannst du ja mal ausprobieren prefferedsize auf 200 und beim anlegen der datei new object[25][25], da sieht man die untersten zeilen nicht mehr
 
S

SlaterB

Gast
es ist etwa müßig wenn du eh schon immer alles ausprobierst und deine Ergebnisse und Folgeprobleme nicht in einem Rutsch angibst..

aber Recht hast du auf jeden Fall,
ich sehe nun auch keine Möglichkeit mit setPreferredSize zu arbeiten,

ein 'setze alle Spalten auf Breite x' kenne ich auch nicht,
so dass ich zu 'in einer Schleife Breite für alle Spalten setzen' tendiere,
das würde eine einzelne Operation 'setze alle Spalten auf Breite x', wenn es sie gäbe, sicherlich genauso machen

dass es andere Wege nicht gibt, kann ich aber nicht ausschließen ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T ScrollBar TableView Java Basics - Anfänger-Themen 6
Franzi1001 ScrollBar lässt sich nicht bewegen Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert JScollPane scrollbar unsichtbar machen Java Basics - Anfänger-Themen 2
M TextArea scrollbar bei editable false Java Basics - Anfänger-Themen 5
G Darstellungsproblem beim Betätigen der Scrollbar in JTabe Java Basics - Anfänger-Themen 2
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
A TextArea und ScrollBar Java Basics - Anfänger-Themen 17
J Methoden Knopffarbe einer Scrollbar Java Basics - Anfänger-Themen 5
M Scrollbar zu Textarea Java Basics - Anfänger-Themen 5
B JList mit Scrollbar? Java Basics - Anfänger-Themen 7
W Scrollbar HORIZONTAL Java Basics - Anfänger-Themen 2
C Scrollbar !? Java Basics - Anfänger-Themen 3
K Scrollbar - Bild - paint-Methode - zoom Java Basics - Anfänger-Themen 10
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H >>ScrollBar<< Java Basics - Anfänger-Themen 2
H ScrollBar inaktiv / Rekursive Methode Java Basics - Anfänger-Themen 4
A Scrollbar und Änderung Java Basics - Anfänger-Themen 3
L scrollbar auf double? Java Basics - Anfänger-Themen 6
Horst79 Scrollbar in einem jEditorPane Java Basics - Anfänger-Themen 2
A ChatGUI: Scrollbar und Funktionen Java Basics - Anfänger-Themen 5
A jtable scrollbar Java Basics - Anfänger-Themen 8
K J_table scrollbar Java Basics - Anfänger-Themen 13
O Scrollbar in GUI einfügen Java Basics - Anfänger-Themen 4
E ScrollBar automatisch scrollen Java Basics - Anfänger-Themen 8
N Scrollbar addAdjustmentListener Java Basics - Anfänger-Themen 3
P In JTextArea soll automisch an einen bestimmte Scrollbar pos Java Basics - Anfänger-Themen 14
E Scrollbar mit NULL- Layout? Java Basics - Anfänger-Themen 4
H Anfänger verzweifelt: Buttons und Scrollbar in einem Applet Java Basics - Anfänger-Themen 5
H JScrollPane -> Problem bei ScrollBar Java Basics - Anfänger-Themen 3
C ein Canvas ist zu groß. mit Scrollbar ? Java Basics - Anfänger-Themen 8
E Scrollbar- Farben Java Basics - Anfänger-Themen 5
G Scrollbar einer Itemlist hinzufügen Java Basics - Anfänger-Themen 3
G scrollbar, brauche hilfe wird nicht dargestellt Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben