Swing JTable Spalten namen

Big Masie

Mitglied
Hallo,

Ich versuch grad eine JTable hinzubekommen was fast auch gelingt ^^ aber der will mir einfach keine Spaltennamen anzeigen. Also die Titel der jeweiligen spalte praktisch .... so sieht der code im moment aus:

Java:
String[] titles = new String[]{ "A", "B", "C", "D" };
DefaultTableModel model = new DefaultTableModel( titles, 0 );    
JTable table = new JTable( model );
table.setSize(300, 200);
table.setLocation(50, 50);
model.addRow(new String[1]);
füller.add(table);

Ich hab schon hin und her probiert nur es scheint einfach nicht zu klappen 🙁
 
Was ist füller? (Umlaute lieber vermeiden)
Vllt. hilft da schon
Code:
füller.add(new JScrollPane(table))
Je nachdem welches Layout du hast..möglich wäre auch den Header separat zu adden:
add(table.getTableHeader()); add(table);

model.addRow(new String[1]); könntest du dir eig. auch sparen wenn du die 0 mit einer 1 ersetzt beim Konstruktor vom Model ?!
 
also füller ist nur ein Label wo alles drauf ist.

wenn ich
Java:
füller.add(new JScrollPane(table))
mache dann zeigt er die Tabelle gar nicht mehr an.
und das mit dem separat hinzu adden funzt scheinbar auch irgentwie nicht, jedenfalls zeigt er keinen header an 🙁 .... ich zeig mal den kompletten quellcode der klasse, vieleicht hilft es ja.

Java:
public class NewList
{
	public NewList()
	{
		
		JFrame newList = new JFrame("Neue Liste erstellen!");
		newList.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		newList.setSize(400,300);
		newList.setLocationRelativeTo(null);
		newList.setResizable(false);
		newList.setVisible(true);
		
		JLabel füller = new JLabel();
		newList.add(füller);
		
		JLabel Label1 = new JLabel("Name der Liste:");
		Label1.setSize(120,20);
		Label1.setFont(new Font("Arial",Font.BOLD,16));
		Label1.setLocation(10, 5);
		füller.add(Label1);
		
		JTextField ListName = new JTextField();
		ListName.setSize(200, 20);
		ListName.setLocation(140, 5);
		füller.add(ListName);
		
		
		String[] titles = new String[]{ "A", "B", "C", "D" };
		DefaultTableModel model = new DefaultTableModel(titles,0);    
	    JTable table = new JTable(model);
	    table.setSize(300, 200);
	    table.setLocation(50, 50);
	    model.addRow(new String[1]);
	    füller.add(table);

	}
}
 
hmmm ... aber jetzt scheinen die funktionen setSize() und setLocation() nicht mehr richtig zu funktionieren, ... weiss einer woran das liegt? Oder besser noch, was kann ich dagegen tun? ^^
 
hier nochmal eine überarbeitete Version der ganzen klasse:

Java:
public class NewList extends JFrame
{
	public NewList()
	{
		setSize(400, 300);
		setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		setLocationRelativeTo(null);
		setResizable(false);
		setVisible(true);
		setLayout(null);
		
		JPanel p = new JPanel();
		
		JLabel Label1 = new JLabel("Name der Liste:");
		Label1.setFont(new Font("Arial",Font.BOLD,16));
		Label1.setBounds(10, 10, 120, 20);
		
		JTextField ListName = new JTextField();
		ListName.setBounds(140, 10, 200, 20);
		
		String[] titles = new String[]{ "Deutsch", "Englisch" };
		DefaultTableModel model = new DefaultTableModel(titles,10);
		JTable table = new JTable(model);
		table.setRowHeight(20);
		table.setBounds(50, 50, 300, 200);
		
		JScrollPane scrollPane = new JScrollPane( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
												  JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		scrollPane.setViewportView(table);
		
		
		p.add(Label1);
		p.add(ListName);
		p.add(table);
		p.add(scrollPane);
		add(p);
	}
}

Das Problem hier ist, das er in dem fenster nichts anzeigt, also einfach ein leeres Fenster
 
Abgesehen davon, dass "NullLayout" zu 99% die falsche Wahl ist, müsstest du die Methoden zur Dimensionierung nun an der JScrollPane anwenden, nicht mehr an der JTable.
 
aber so kann ich wenigstens alles richtig hinschieben und die größen ändern, ... bei den ganzen layout optionen hat das alles immer nie so funktioniert wie ich wollte, nichts war an seinem platz
 
Mann muss sich natürlich erstmal einarbeiten, aber glaub mir: du wirst null-layout später bereuen(Eigene Erfahrungen 😀).
mfg
Eldorado
 

Neue Themen


Zurück
Oben