Zum Inhalt springen

Jtable spalten beschriftbar machen


screamboy14

Empfohlene Beiträge

huhu liebe forum gemeinde

ich hab folgendes wesshalb ich mich an euch wende ich habe ein programm wo man über 2 txt felder die Anzahl der spalten und zeilen meiner JTable angibt um diese dann später via knopfdruck zu inizialisieren/erstellen

nun sind dort aber die spaltennamen bereits vorgegeben und die möchte ich editierbar machen z.b. durch einen doppelklick

über google bin ich auf einen tableheader gestoßen allerdings wenn ich das richtig verstanden habe muss man diesen von anfang an für die erstellung der tabelle verwendet haben bei mir ist es aber so das die tabelle durch den user erst per knopfdruck und eingabe erstellt wird

dessweiteren konnte ich in der headerklasse auch keine namentlich passente methode wie z.b. isEditable finden...

und wenn ich den Table header so implementiere wie es in einem der google beitrage steht erscheint bei mir die fehlermeldung das das spaltenarray bei mir KEIN tableheatertyp ist (ist es auch nicht es ist vom typ string) desswegen auch meine frage würde ungern jetzt den gesammten source ummodeln nur wegen dem heater ...

villeicht könnt ihr mir da ja helfen auf wunsch kann ich auch einmal den source anhefeten (3 klassen die für dieses problem relevant währen)

lg und danke schon einmal im vorraus

hier nocheinmal zum verdeutlichen die relevantesten passagen

das frame

package tabelleAuslesen;


import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JButton;

import javax.swing.ScrollPaneConstants;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;



public class Auslesen extends JFrame {



	static JTable table;

	static JScrollPane scrollPane;


	static String bezeichnung[];

	static String inhalte[][];

	static JTextField txtfSpalten;

	static JTextField txtfZeilen;


	static JButton btnAuslesen;

	static JButton btnInizialisieren;



	public static void main(String[] args)

	{

		EventQueue.invokeLater

		(

			new Runnable() 

			{

				public void run() 

				{

					try 

					{

						JFrame frame = new Auslesen();

						frame.setVisible(true);

					} catch (Exception e) 

					{

						e.printStackTrace();

					}

				}

			}

		);


	}


	/**

	 * Create the frame.

	 */

	public Auslesen() 

	{


//----------------------------------------EIGENSCHAFTEN

		setVisible(true);

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		setResizable(false);

		setBounds(100, 100, 450, 300);

		getContentPane().setLayout(null);




//----------------------------------------KOMPONENTE



		scrollPane = new JScrollPane();

		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

		scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

		scrollPane.setBounds(10, 54, 424, 132);

		getContentPane().add(scrollPane);




	//----------------------------------------LABEL


		JLabel lblAnzahlSpalten = new JLabel("Anzahl Spalten:");

		lblAnzahlSpalten.setBounds(26, 22, 93, 21);

		getContentPane().add(lblAnzahlSpalten);


		JLabel lblAnzahlZeilen = new JLabel("Anzahl Zeilen:");

		lblAnzahlZeilen.setBounds(169, 22, 89, 21);

		getContentPane().add(lblAnzahlZeilen);


	//----------------------------------------TEXTFELDER


		txtfSpalten = new JTextField();

		txtfSpalten.setBounds(129, 22, 30, 20);

		getContentPane().add(txtfSpalten);

		txtfSpalten.setColumns(10);


		txtfZeilen = new JTextField();

		txtfZeilen.setColumns(10);

		txtfZeilen.setBounds(253, 22, 30, 20);

		getContentPane().add(txtfZeilen);


	//--------------------------------------Knöpfe	




		btnInizialisieren = new JButton("Inizialisieren");

		btnInizialisieren.setBounds(298, 21, 106, 23);

		btnInizialisieren.addActionListener(new BtnInizial());

		getContentPane().add(btnInizialisieren);


		 btnAuslesen = new JButton("Auslesen");


		btnAuslesen.addActionListener(new BtnAuslesen()); 


		btnAuslesen.setBounds(150, 211, 89, 23);

		btnAuslesen.setEnabled(false);

		getContentPane().add(btnAuslesen);




	}	

}

und der inizialisieren butten
package tabelleAuslesen;


import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.table.TableCellEditor;


public class BtnInizial implements ActionListener

{

	String txtSpalten; 

	String txtZeilen;

	int spalten;

	int zeilen;


	BtnInizial()

	{

	}




	//	@Override

	public void actionPerformed(ActionEvent e) 

	{


		zeilen = Getter.GetTextZeilen(txtZeilen);

		IsOk(zeilen);

		if (zeilen >0 )

		{

			spalten = Getter.GetTextSpalten(txtSpalten);


			Auslesen.inhalte    = new String [zeilen][spalten];

			Auslesen.bezeichnung = new String[spalten];

			Auslesen.table = new JTable(zeilen , spalten  );

		//	TabelleVorfüllen();


			Auslesen.table.setAutoResizeMode(Auslesen.table.AUTO_RESIZE_OFF);//zellen größe minimal wie überschrift

			Auslesen.table.setRowSelectionAllowed(false); //blaumarkierung über die reihe ausschalten

			Auslesen.table.getTableHeader().setReorderingAllowed(false);// spalten unverschiebbar


			Auslesen.table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);//zell editierung beenden

																					   //bei verlassen der tabellenopjektes		


			Auslesen.scrollPane.setViewportView(Auslesen.table);//tabelle auf scrollPane implementieren

			Auslesen.btnAuslesen.setEnabled(true);//butten anklickbar machen



		}



	}


	public static void IsOk(int wert)

	{

		if (wert <=0)

		{

			FalscherDatentyp fehler = new FalscherDatentyp();

			fehler.setVisible(true);

		}


	}


	public static void TabelleVorfüllen()

	{

		for (int i = 0; i < Auslesen.table.getRowCount(); i++)

		{

			for (int j = 0; j< Auslesen.table.getColumnCount(); j++)

			{

				Auslesen.table.setValueAt("", i, j);

			}

		}

	}


}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...