Swing Delay (1-4 Sek.) bei JTable und Dialog beim ersten Ausführen

aesthetic

Neues Mitglied
Moin Community,

ich habe folgendes Problem. Wenn ich zum ersten Mal nach dem Programmstart Daten in meine JTables lade (sei es auch nur eine Zeile) oder z.B. zum ersten Mal meine aboutBox aufrufe, bekomme ich ein Delay von ein paar Sekunden bevor das Gewollte auch passiert. Das komische ist, wenn ich z.B. eine Zeile in meine JTable lade und dann die aboutBox aufrufe ist diese sofort da und andersherum, wenn ich erst die aboutBox nach Programmstart aufrufe kann ich die JTables ohne Delay mit Daten befüllen. Der Delay tritt wohlgemerkt nur einmal nach dem Programmstart auf. Danach funktioniert alles wunderbar und schnell. Ich arbeite mit dem Swing Application Framework.

Java:
package org.rdo.gui;

import net.java.balloontip.BalloonTip;
import net.java.balloontip.styles.BalloonTipStyle;
import net.java.balloontip.styles.MinimalBalloonStyle;
import net.java.balloontip.utils.TimingUtils;

import org.jdesktop.application.Action;
import org.jdesktop.application.Application;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.Task;
import org.jdesktop.application.View;
import org.rdo.calc.CalcBeanspruchungen;
import org.rdo.calc.Einheiten;
import org.rdo.daten.Punkt;
import org.rdo.daten.Schicht;
import org.rdo.daten.SchichtenTypen;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.Vector;
import java.util.logging.Logger;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;

/**
 * MainGui
 * @author Simon 2010
 *
 * TODO adden von patterns...
 * ******************************************************************
 * TODO ca. 2-5 Sek. delay beim ersten Füllen des JTables mit Daten...WTF??
 * TODO "kein" Schichtenverbund implementieren
 * TODO Unendliche Besselnullstellen
 * TODO Konstanden für jeden Parameter m zwischenspeichern
 * TODO Matrizen per Hand ausmultiplizieren (Beschleunigung der Rechenläufe)
 * TODO Parralelisierung, momentan wird nur ein Rechenkern genutzt (Beschleunigung der Rechenläufe)
 * TODO Zeichnen von Auswertungsdiagrammen (nötig??)
 * TODO komplette RDO implementieren
 */
public class MainGui extends SingleFrameApplication {
	private static final Logger logger = Logger.getLogger(MainGui.class.getName());
	private static final Insets zeroInsets = new Insets(0,0,0,0);
	private ResourceMap appResourceMap;
	private JTabbedPane tabbedPane;
	private JSplitPane splitPane;
	private ModellPanel grafik;
	private SchichtenTabelle tableSchichten;
	private PunkteTabelle tablePunkte;
	private JToolBar toolbar1;
	private JDialog aboutBox = null;
	private double radius = 15.0D;
	private double last = 5.0D; // Last in Tonnen
	private double druck = Einheiten.erzeugeDruck(Einheiten.megaToKilo(last), radius);
	private Vector<Schicht> schichten = new Vector<Schicht>();
	private Vector<Punkt> pkt = new Vector<Punkt>();
	private ArrayList<DecimalField> dfs = new ArrayList<DecimalField>();
	private SchichtenTypen typen;
	private BalloonTip errBalloon = null;
	
	/**
	 * 
	 * @return Rechentask der im Hintergrundthread ausgeführt wird
	 */
	@SuppressWarnings("rawtypes")
	@Action
	(block = Task.BlockingScope.WINDOW)
	public Task calc() {
		JButton button = (JButton)toolbar1.getComponentAtIndex(toolbar1.getComponentCount()-1);
	//	long a = System.currentTimeMillis();
	//	long c = System.currentTimeMillis();
	//	System.out.println(" TIME[s]: "+(double)(c-a)/1000);
		if(!this.tableSchichten.noErrors(button)) return null;
		if(!this.tablePunkte.noErrors(button)) return null;
		if(!noErrors()) return null;
		
		return new Rechne();
	}
	
	/**
	 * TestCase laden, also Schichten und Prüfstellen
	 */
	@Action
	public void tc() {

    	schichten.add(new Schicht(12, 20000, 0.5));
    	schichten.add(new Schicht(20, 10000, 0.5));
    	schichten.add(new Schicht(52, 2000, 0.5));
    	schichten.add(new Schicht(0, 400, 0.5));
		this.tableSchichten.model.load();

		pkt.add(new Punkt(0.0D, 0.0D));
		pkt.add(new Punkt(6.0D, 0.0D));
		pkt.add(new Punkt(12.0D, 0.0D));
		pkt.add(new Punkt(12.00000001D, 0.0D));
		pkt.add(new Punkt(22.0D, 0.0D));
		pkt.add(new Punkt(32.0D, 0.0D));
		pkt.add(new Punkt(32.00000001D, 0.0D));
		pkt.add(new Punkt(58.0D, 0.0D));
		pkt.add(new Punkt(84.0D, 0.0D));
		pkt.add(new Punkt(84.00000001D, 0.0D));
		this.tablePunkte.model.load();
    }

	/**
	 * Programminfos zeigen
	 */
	@Action
	public void showAboutBox() {
		if (aboutBox == null) {
			aboutBox = createAboutBox();
		}
		show(aboutBox);
	}

    /**
     * Programminfos schließen
     */
	@Action
	public void closeAboutBox() {
		if (aboutBox != null) {
			aboutBox.setVisible(false);
			aboutBox = null;
		}
	}

	/**
	 * Entfernt Schicht in Schichtentabelle
	 */
	@Action
	public void delSchicht() {
		tableSchichten.delSchicht();
	}
	
	/**
     * Fügt Schicht in Schichtentabelle hinzu
     */
	@Action
	public void addSchicht() {
		tableSchichten.addSchicht();
	}
	
	/**
     * Entfernt Punkt in Punktetabelle
     */
	@Action
	public void delPunkt() {
		tablePunkte.delPunkt();
	}
	
	/**
     * Fügt Punkt in Punktetabelle hinzu
     */
	@Action
	public void addPunkt() {
		tablePunkte.addPunkt();
	}
	
	/**
	 * @param e
	 */
	@Action
	public void last(ActionEvent e) {
		if(((DecimalField)e.getSource()).getText().toCharArray().length != 0) {
			last = ((DecimalField)e.getSource()).getValue();
			druck = Einheiten.erzeugeDruck(Einheiten.megaToKilo(last), radius);
			if(dfs.size() > 0){
				dfs.get(1).setValue(druck);
				mussNeu();
			}
		}
	}
	
	/**
	 * @param e
	 */
	@Action
	public void druck(ActionEvent e) {
		if(((DecimalField)e.getSource()).getText().toCharArray().length != 0) {
			druck = ((DecimalField)e.getSource()).getValue();
			last = Einheiten.druckZuTonnen(druck, radius);
			if(dfs.size() > 0) {
				dfs.get(0).setValue(last);
				mussNeu();
			}
		}
	}
	
	/**
	 * @param e
	 */
	@Action
	public void radius(ActionEvent e) {
		if(((DecimalField)e.getSource()).getText().toCharArray().length != 0) {
			radius = ((DecimalField)e.getSource()).getValue();
			druck = Einheiten.erzeugeDruck(Einheiten.megaToKilo(last), radius);
			if(dfs.size() > 0) {
				dfs.get(1).setValue(druck);
				mussNeu();
			}	
		}
	}
	
	private boolean noErrors(){
		for(DecimalField df : dfs) {
			if(df.getText().toCharArray().length == 0) {
				showErrorMessage(df, this.appResourceMap.getString("error.leer"));
			} else {
				if(df.getValue() == 0) {
					showErrorMessage(df, this.appResourceMap.getString("error.leer"));
				}
			}
		}
		return true;
	}
	
	private void showErrorMessage(JComponent comp, String text) {
		showMessage(comp, text, new Color(255, 255, 10, 220));
	}
	
	private void showMessage(JComponent comp, String text, Color color) {
		if (errBalloon!=null) {
			errBalloon.closeBalloon();
		}
		BalloonTipStyle style = new MinimalBalloonStyle(color, 5);
		errBalloon = new BalloonTip(comp, new JLabel("<html><font color=\"#333333\">" + text + "</font></html>"),
				style, BalloonTip.Orientation.LEFT_BELOW, BalloonTip.AttachLocation.ALIGNED, 30, 10, false);
		errBalloon.addDefaultMouseListener(false);
		TimingUtils.showTimedBalloon(errBalloon, 2000);
	}
	
	/**
	 * Setzt alle vorher berechneten Werte auf false und updated PunkteTabelle, da sich
	 * Werte oder Einträge in der SchichtenTabelle geändert haben.
	 */
	public void mussNeu(){
		if(pkt.size() == 0) return;
		else {
			if(pkt.get(0).getBerechnet() == false) return;
			for(Punkt p: pkt) {
				p.setBerechnet(false);
				this.tablePunkte.model.fireTableDataChanged();
			}
		}
	}
	
	/**
     * Task für das Berechnen von Beanspruchungen aus einem Prüfstellen-Vector
     * @author Simon Macura
     *
     */
	private class Rechne extends Task<Void, Void> {
		Rechne(){
			super(MainGui.this);
			setUserCanCancel(true);
		}
    	// berechne Beanspruchgen und speichere diese in dem globalem Punkte-Vector
		@Override
		protected Void doInBackground() {
			CalcBeanspruchungen x;
			int i = 0;
			for(Punkt p : pkt){
				if(this.isCancelled())
					break;
				if(!p.getBerechnet()){
					x = new CalcBeanspruchungen(p.getKoordinateR(), 
							p.getKoordinateZ(), radius, druck, schichten);
					p.setSigmaZ(x.spannung_Z);
					p.setSigmaR(x.spannung_R);
					p.setSigmaT(x.spannung_T);
					p.setSchubRZ(x.schub_RZ);
					p.setVerschiebungW(x.verschiebung_W);
					p.setVerschiebungU(x.verschiebung_R);
					p.setDehnungZ(x.dehnung_Z);
					p.setDehnungR(x.dehnung_R);
					p.setDehnungT(x.dehnung_T);
					p.setBerechnet(true);
				}
				setProgress(++i,0,pkt.size());
			}
			return null;
		}
		
		@Override
		protected void succeeded(Void success) {
			tablePunkte.model.load();
		}
		
		@Override
		protected void cancelled() {
			this.cancel(true);
			tablePunkte.model.load();
		}
	}

	private javax.swing.Action getAction(String actionName) {
		return getContext().getActionMap().get(actionName);
	}
	
	private void initGridBagConstraints(GridBagConstraints c) {
		c.anchor = GridBagConstraints.CENTER;
		c.fill = GridBagConstraints.NONE;
		c.gridwidth = 1;
		c.gridheight = 1;
		c.gridx = GridBagConstraints.RELATIVE;
		c.gridy = GridBagConstraints.RELATIVE;
		c.insets = zeroInsets;
		c.ipadx = 4;
		c.ipady = 4;
		c.weightx = 0.0;
		c.weighty = 0.0;
    }

	/**
	 * Programminfobox
	 * @return
	 */
	private JDialog createAboutBox() {
		JPanel panel = new JPanel(new GridBagLayout());
		panel.setBorder(new EmptyBorder(0, 28, 16, 28)); // top, left, bottom, right
		JLabel titleLabel = new JLabel();
		titleLabel.setName("aboutTitleLabel");
		GridBagConstraints c = new GridBagConstraints();
		initGridBagConstraints(c);
		c.anchor = GridBagConstraints.WEST;
		c.gridwidth = GridBagConstraints.REMAINDER;
		c.fill = GridBagConstraints.HORIZONTAL;
		c.ipady = 32;
		c.weightx = 1.0;
		panel.add(titleLabel, c);
		String[] fields = {"description", "version", "vendor", "home"};
		for(String field : fields) {
			JLabel label = new JLabel();
			label.setName(field + "Label");
			JTextField textField = new JTextField();
			textField.setName(field + "TextField");
			textField.setEditable(false);
			textField.setBorder(null);
			initGridBagConstraints(c);
		//	c.anchor = GridBagConstraints.BASELINE_TRAILING; 1.6 ONLY
			c.anchor = GridBagConstraints.EAST;
			panel.add(label, c);
			initGridBagConstraints(c);
			c.weightx = 1.0;
			c.gridwidth = GridBagConstraints.REMAINDER;
			c.fill = GridBagConstraints.HORIZONTAL;
			panel.add(textField, c);
		}
		JButton closeAboutButton = new JButton();
		closeAboutButton.setAction(getAction("closeAboutBox"));
		initGridBagConstraints(c);
		c.anchor = GridBagConstraints.EAST;
		c.gridx = 1;
		panel.add(closeAboutButton, c);
		JDialog dialog = new JDialog();
		dialog.setName("aboutDialog");
		dialog.add(panel, BorderLayout.CENTER);
		return dialog;
		}

	/**
	 * Erzeuge Menüs
	 * @param menuName
	 * @param actionNames
	 * @return
	 */
	private JMenu createMenu(String menuName, String[] actionNames) {
		JMenu menu = new JMenu();
		menu.setName(menuName);
		for (String actionName : actionNames) {
			if (actionName.equals("---")) {
				menu.add(new JSeparator());
			} else {
				JMenuItem menuItem = new JMenuItem();
				menuItem.setName(actionName + "MenuItem");
				menuItem.setAction(getAction(actionName));
				menuItem.setIcon(null);
				menu.add(menuItem);
			}
		}
		return menu;
	}
	
	/**
	 * Erzeuge Menps mit reinträgen
	 * @return
	 */
	private JMenuBar createMenuBar() {
		JMenuBar menuBar = new JMenuBar();
		String[] fileMenuActionNames = {
				"tc",
				"---",
				"quit"
		};
		String[] helpMenuActionNames = {
				"showAboutBox"
		};
		menuBar.add(createMenu("fileMenu", fileMenuActionNames));
		menuBar.add(createMenu("helpMenu", helpMenuActionNames));
		return menuBar;
	}
	
	/**
	 * Erzeuge JToolBar1
	 * @return
	 */
	private JToolBar createToolBar1() {
		String[] toolbarActionNames = {
				"tc",
				"calc"
		};
		JToolBar toolBar = new JToolBar();
		toolBar.setFloatable(false);
		Border border = new EmptyBorder(2, 9, 2, 9); // top, left, bottom, right
		for (String actionName : toolbarActionNames) {
			JButton button = new JButton();
			button.setName(actionName + "ToolBarButton");
			button.setBorder(border);
			button.setVerticalTextPosition(JButton.BOTTOM);
			button.setHorizontalTextPosition(JButton.CENTER);
			button.setAction(getAction(actionName));
			button.setFocusable(false);
			toolBar.add(button);
		}
		return toolBar;
	}
	
	/**
	 * Erzeuge JToolBar2
	 * @return
	 */
	private JToolBar createToolBar2() {
		JToolBar toolBar = new JToolBar();
		toolBar.setFloatable(false);
		Border border = new EmptyBorder(2, 9, 2, 9); // top, left, bottom, right
		String[] actionNames = {"last", "druck", "radius"};
		Double[] values = {last , druck, radius};
		for (int i=0; i < actionNames.length; i++) {
			JLabel label = new JLabel(this.appResourceMap.getString(actionNames[i]+".text"));
			label.setBorder(border);
			toolBar.add(label);
			DecimalField df = new DecimalField(3, getAction(actionNames[i]));
			df.setColumns(7);
			dfs.add(df);
			df.setAction(getAction(actionNames[i]));
			df.setValue(values[i]);
			toolBar.add(df);
		}
		toolBar.setMaximumSize(new Dimension(420,26));
		return toolBar;
	}

	/**
	 * Erzeuge JTabbedPane
	 * @return
	 */
	private JComponent createMainPanel() {
		tabbedPane = new JTabbedPane(JTabbedPane.TOP);
		typen = new SchichtenTypen(appResourceMap);
		grafik = new ModellPanel(schichten, typen, 80);
		tableSchichten = new SchichtenTabelle(this, schichten, typen, grafik);
		String textSchichten = appResourceMap.getString("tableSchichten.text");
		String tooltipSchichten = appResourceMap.getString("tableSchichten.tooltip");
		splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, 
				tableSchichten.getScrollPane(), grafik.getScrollPane());
		splitPane.setOneTouchExpandable(true);
		splitPane.setResizeWeight(1.0); // Divider nach rechts...
		splitPane.getLeftComponent().setMinimumSize(tableSchichten.getPreferredScrollableViewportSize());
		splitPane.getRightComponent().setMinimumSize(grafik.getPreferredSize());
		tabbedPane.addTab(textSchichten, null, splitPane, tooltipSchichten);
		tablePunkte = new PunkteTabelle(this, pkt);
		String textPunkte = appResourceMap.getString("tablePunkte.text");
		String tooltipPunkte = appResourceMap.getString("tablePunkte.tooltip");
		tabbedPane.addTab(textPunkte, null, tablePunkte.getScrollPane(), tooltipPunkte);
		return tabbedPane; 
	}
	
	/**
	 * Initialisierungen etc. die gemacht werden müssen bevor die GUI konstruiert wird
	 */
	@Override
	protected void initialize(String[] args) {
		appResourceMap = getContext().getResourceMap();
		String textFiles = appResourceMap.getString("txtFileExtensionDescription");
	}
	
	/**
	 * Konstruiere GUI
	 */
	@Override
	protected void startup() {
		StatusBar statusBar = new StatusBar(this, getContext().getTaskMonitor());
		addExitListener(new ConfirmExit());
		View view = getMainView();
		view.setComponent(createMainPanel());
		
		// Toolbars werden so nicht da angezeigt wo ich se gern hätte
		//List<JToolBar> toolbars = new ArrayList<JToolBar>();
		//toolbars.add(toolbar1);
		////toolbars.add(createToolBar2());
		//view.setToolBars(toolbars);
		
		JPanel toolbar = new JPanel();
		toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.X_AXIS));
		toolbar1 = createToolBar1();
		toolbar.add(createToolBar2());
		toolbar.add(toolbar1);
		view.getRootPane().getContentPane().add(toolbar, BorderLayout.NORTH);
		view.setMenuBar(createMenuBar());
		view.setStatusBar(statusBar);
		getMainFrame().setIconImage(appResourceMap.getImageIcon(KEY_APPLICATION_ICON).getImage());
		show(view);
	}
	
	/**
	 * Tasks die nach Initialisierung der GUI gemacht werden sollen
	 */
	@Override
	protected void ready() {
		
	}
	
	/** 
     * GUI auf EDT starten.
     * @param args
     * @see Application#launch
     */
	public static void main(String[] args) {
		launch(MainGui.class, args);
	}
	
	private class ConfirmExit implements Application.ExitListener {
		public boolean canExit(EventObject e) {
			return true;
		}
		public void willExit(EventObject e) { 
			
		}
	}
}

Vielleicht kann mir jemand einen Tipp geben...verzweifele langsam an dem Problem.

Simon
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
F Swing timer nimmt delay nicht an AWT, Swing, JavaFX & SWT 2
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
D Swing JTable Renderer Grafikfehler AWT, Swing, JavaFX & SWT 0
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
K Swing JTable updaten AWT, Swing, JavaFX & SWT 9
thet1983 Swing MySQL >> JTable AWT, Swing, JavaFX & SWT 5
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3
O JTable ohne Rahmen printen AWT, Swing, JavaFX & SWT 3
L Swing JTable refresht die Column Namen nicht AWT, Swing, JavaFX & SWT 0
K JTable komplett durch andere ersetzen AWT, Swing, JavaFX & SWT 4
S JTable übernimmt Änderungen nicht AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben