Alle Swing-Elemente anzeigen

tomier

Aktives Mitglied
Liebe Leute,

Ich hätte eine Frage:

Ich habe ein JFrame mit diversen Elemente (TextPanes, TextAreas, ScrollPanes, einem Splitpane etc.).

Ich will das Fenster z.b. in einer Größe von 1000x400 Pixel beim Starten anzeigen und habe bei allen Container-Elementen - also die Elemente wie linke Seite Inhalt ein ScrollPane, rechte Seite Inhalt ein JPanel usw - eine MinimumSize gesetzt, welche sich rein rechnerisch innerhalb dieser 1000x400 Pixel ausgehen sollte.

Jedoch nimmt z.B. der Scrollpane weit mehr als das Minimum.
Weil mit preferredSize() kann ichs zwar in der "kleinen" Ausgabe 1000x400 Pixel so wie ichs will anzeigen, jedoch beim vergrößern oder maximieren bleibt diese Größe dann bestehen.

Wie kann ich im kleinen Fenster alle Swing-Elemente "hineinpacken" und beim vergrößern behalten?
 

Kjubert

Aktives Mitglied
Du könntest für dein Frame bzw. für den Container des Frames, in dem ja alle deine Komponenten drin sind, das GroupLayout verwenden.
Damit kannst du bestimmen, ob und wenn ja in welche Richtungen sich welche Elemente beim Vergrößern des Frames ausdehnen sollen und wo die Elemente verankert sein sollen.

Aber das von Hand zu machen ist nicht ganz leicht - ich habe es bisher nur mit einem GUI-Builder gemacht. Funktioniert aber wunderbar und ich werde das demnächst auch mal manuell üben.

Hier ein nerviger Link dazu:
How to Use GroupLayout (The Java™ Tutorials > Creating a GUI With JFC/Swing > Laying Out Components Within a Container)

und hier ein etwas leserlicher:
A GroupLayout Example (The Java™ Tutorials > Creating a GUI with JFC/Swing > Laying Out Components Within a Container)


Ich hoffe das hilft!
 

tomier

Aktives Mitglied
Ich habe jetzt mal auf das GridBagLayout umgestellt nur das Problem ist jetzt passt er sich gar nicht mehr an und behält die fixe Größe.

Ich habe sonst nur setMinimumSize verwendet, ich gebe euch mal den Code,
die interessanten Zeilen sind von 525 bis 625.

Danke für eure Hilfe.

Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Stack;
import java.util.Vector;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.event.TableColumnModelListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
import javax.swing.tree.*;




 
public class Explorer extends JFrame implements TableModelListener{
 
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 
	 */
	
	private JPanel contentPane;
	private JPanel innercontentPane;
	private JPanel infoPane;
	private JPanel footerPane;
	private JPanel costPane;
    private JModdedTable table;
    private JComboBox comboBox;
    private DefaultTableModel tableModel=new DefaultTableModel();
    private TableColumnModelListener tableListener;
    GridBagLayout grid = new GridBagLayout();
    GridBagConstraints straints = new GridBagConstraints();
    
	private JButton save =new JButton("Speichern");
	private JButton abort =new JButton("Abbrechen");
	
    private JLabel labelTotalcost;
    private JLabel labelTotalpriceNoDiscount;
    private JLabel labelTotalpriceYesDiscount;
    private JLabel labelMarginalIncome;
    private JLabel labelWeightedAverageDiscount;
    private JLabel labelTotalWorkingHours;
    private JLabel varTotalcost;
    private JLabel varTotalpriceNoDiscount;
    private JLabel varTotalpriceYesDiscount;
    private JLabel varMarginalIncome;
    private JLabel varWeightedAverageDiscount;
    private JLabel varTotalWorkingHours;
    
    private JLabel labelShortDescr;
    private JLabel labelLongDescr;
    private JLabel labelBeginDate;
    private JLabel labelEndDate;
    private JTextArea varShortDescr;
    private JTextArea varLongDescr;
    private JTextPane varBeginDate;
    private JTextPane varEndDate;
    
    
    //Header-Display
    private JLabel OrderNR;
    private JLabel ClientNR;
    private JLabel ClientFirstname;
    private JLabel ClientLastname;
    private JLabel varOrderNR;
    private JLabel varClientNR;
    private JLabel varClientFirstname;
    private JLabel varClientLastname;
    
    private MenuBar menuBar;
    private Menu Order;
    private MenuItem openOrder;
    private MenuItem newOrder;
    private MenuItem saveOrder;
    private MenuItem executeOrder;
  
    private HidableTableColumnModel htcm;
    private Calculation calc=new Calculation();
    private JPopupMenu popupDatei = new JPopupMenu();
    private JPopupMenu popupBackground = new JPopupMenu();

    private double discountsettext;
    private Font font1;
    private database db=new database();		
    private MyLeaf node;
    
    private double stk;
    private double Totalcost;
    private double TotalpriceNoDiscount;
    private double TotalpriceYesDiscount;
    private double MarginalIncome;
    private double WeightedAverageDiscount;
    
    private int position_stueck;
    private int position_materialnr;
    private int position_ekpreisnetto;
    private int position_vpreisnetto;
    private int position_vpreisnrabatt;
    private int position_rabatt;
    private int delete_column;
    
    private String clientNR;
    private String prename;
    private String surname;
    private Map<Integer, Double> listArticles= new HashMap<Integer, Double>();
    private List<Artikel> listDB =db.doArticles();

    private List<Angebot> listAuftraege = db.doAuftraege();
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                	Explorer frame = new Explorer("000005","Josef","Koch");
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
 
    /**
     * Create the frame
     */
    
    public Explorer() {
    	
    }
            
     
    public Explorer(int orderNR,String order_description_short,String order_description_long,String working_address, 
			String prename, String surname, Date beginDate, Date endDate, Double totalWorkingHours, Double Totalcost,
			Double TotalpriceNoDiscount, Double TotalpriceYesDiscount, Double MarginalIncome,
			Double grantedDiscount) {
    	
    }
    
    public Explorer(String clientNR, String prename, String surname) {
    	
    	//TEMP- Testdaten
    	listDB = new ArrayList<Artikel>();
    	listDB.add(new Artikel(1,"Zylinder","3KS","EVVA","30mmx30mm",200.00,280.23,20.03));
    	listDB.add(new Artikel(2,"Zylinder","Multi","EVVA","30mmx30mm",200.00,280.23,20.03));
    	listDB.add(new Artikel(3,"Balken","FTS88","EVVA","30mmx30mm",200.00,280.23,20.03));
    	listDB.add(new Artikel(4,"Arbeitszeit","K1","K1","30mmx30mm",200.00,280.23,20.03));
    	
    	
    	this.clientNR=clientNR;
    	this.prename=prename;
    	this.surname=surname;
    	
    	Totalcost=0.00;
	    TotalpriceNoDiscount=0.00;
	    TotalpriceYesDiscount=0.00;
	    MarginalIncome=0.00;
	    WeightedAverageDiscount=0.00;
		
		delete_column=8; //Index der Spalte "Löschen" um zeilen zu löschen
		stk =1.0;
		position_stueck=0;
		position_materialnr=1;
		position_ekpreisnetto=5;
	    position_vpreisnetto=6;
	    position_rabatt=7;
	    position_vpreisnrabatt=8;
    	
	    tableModel.addTableModelListener(this);
	    
                 
        
        
		
        
        font1=new Font("Font1", 15, 15);
        
		///////////////////////////
		// JLabel Befüllung und Spaltenerstellung
		////////////////////////////
        
		labelTotalcost = new JLabel("Gesamtkosten:");
		labelTotalpriceNoDiscount = new JLabel("Verkaufspreis vor Rabatt:");
		labelTotalpriceYesDiscount = new JLabel("Verkaufspreis nach Rabatt:");
		labelMarginalIncome = new JLabel("Deckungsbeitrag:");
		labelWeightedAverageDiscount = new JLabel("Durchschnittlicher Rabatt:");	    
	    if(Totalcost==0.0){
	    	varTotalcost = new JLabel(String.valueOf(Totalcost));
	    	
	    }
	    else {
	    	varTotalcost = new JLabel("GG"+String.valueOf(Totalcost));
	    }
	    varTotalpriceNoDiscount = new JLabel(String.valueOf(TotalpriceNoDiscount));
	    varTotalpriceYesDiscount = new JLabel(String.valueOf(TotalpriceYesDiscount));
	    varMarginalIncome = new JLabel(String.valueOf(MarginalIncome));
	    varWeightedAverageDiscount = new JLabel(String.valueOf(WeightedAverageDiscount)+" %");

		tableModel.addColumn("Menge");
		tableModel.addColumn("MatNR");
		tableModel.addColumn("Material");
		tableModel.addColumn("Typ/Artikel");
		tableModel.addColumn("Abmessungen");
		tableModel.addColumn("EKpreis netto");
		tableModel.addColumn("VPpreis netto");
		tableModel.addColumn("Rabatt");
		tableModel.addColumn("VPpreis nach Rabatt");
		tableModel.addColumn("Löschen");
		
		///////////////////////////
		// Ende von JLabel Befüllung und Spaltenerstellung
		////////////////////////////
        
        
  
        // MENU BAR
        menuBar = new MenuBar ();
        // Ein Menü anlegen
        Order = new Menu ("Auftrag");
        // Einen Menüeintrag anlegen
        openOrder = new MenuItem ("Auftrag öffnen");
        newOrder = new MenuItem ("Neuer Auftrag");
        saveOrder = new MenuItem ("Auftrag speichern");
        executeOrder = new MenuItem ("Auftrag durchführen");        
        // Eintrage dem Menü hinzufügen
        Order.add (openOrder);
        Order.add (newOrder);
        Order.add (saveOrder);
        Order.add (executeOrder);
        // Das Menü der Leiste hinzufügen      
        menuBar.add(Order);
        menuBar.setFont(font1);     
        setMenuBar(menuBar);
        
        
        //infoPane
        OrderNR = new JLabel("AngebotsNR:");
        ClientNR = new JLabel("KundenNR:");
        ClientFirstname = new JLabel("Vorname:");
        ClientLastname = new JLabel("Nachname:");
        varOrderNR = new JLabel("000001");
        varClientNR = new JLabel(String.valueOf(clientNR));
        varClientFirstname = new JLabel(prename);
        varClientLastname = new JLabel(surname);
        
        labelShortDescr = new JLabel("Kurzbeschreibung");
        labelLongDescr = new JLabel("Lange Beschreibung");
        labelBeginDate = new JLabel("Anfangsdatum");
        labelEndDate = new JLabel("Enddatum");
        varShortDescr = new JTextArea();
        varLongDescr = new JTextArea();
        varBeginDate = new JTextPane();
        varEndDate = new JTextPane();
        
        varShortDescr.setPreferredSize(new Dimension(40,55));
        varShortDescr.setLineWrap(true);
        varShortDescr.setWrapStyleWord(true);
        varLongDescr.setPreferredSize(new Dimension(40,55));
        varLongDescr.setLineWrap(true);
        varLongDescr.setWrapStyleWord(true);
        
        varBeginDate.setPreferredSize(new Dimension(55,20));
        varEndDate.setPreferredSize(new Dimension(55,20));
        
        
        ///////////////////////////////
        // Info Panel
        ///////////////////////////////
        
        infoPane = new JPanel();
        infoPane.setLayout(new GridBagLayout());
        infoPane.setMinimumSize(new Dimension(250,270));
        GridBagConstraints c = new GridBagConstraints();
        
        c.insets = new Insets(10,10,10,10);  //top padding
        
        
        // Erste Zeile mit Kundennr, Name usw.
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.01;
		c.gridx = 0;
		c.gridy = 0;
		infoPane.add(OrderNR, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.5;
		c.gridx = 1;
		c.gridy = 0;
		infoPane.add(varOrderNR, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.01;
		c.gridwidth = 1;
		c.gridx = 2;
		c.gridy = 0;
		infoPane.add(ClientNR, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.1;
		c.gridwidth = 1;
		c.gridx = 3;
		c.gridy = 0;
		infoPane.add(varClientNR, c);		
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.01;
		c.gridwidth = 1;
		c.gridx = 4;
		c.gridy = 0;
		infoPane.add(ClientFirstname, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.1;
		c.gridwidth = 1;
		c.gridx = 5;
		c.gridy = 0;
		infoPane.add(varClientFirstname, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.01;
		c.gridwidth = 1;
		c.gridx = 6;
		c.gridy = 0;
		infoPane.add(ClientLastname, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1.0;
		c.gridwidth = 1;
		c.gridx = 7;
		c.gridy = 0;
		infoPane.add(varClientLastname, c);
		
		 // Zweite Zeile mit Beschreibung, usw.
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1.0;
		c.gridwidth = 1;
		c.gridx = 0;
		c.gridy = 1;
		infoPane.add(labelShortDescr, c);

		
		c.weightx = 1.0;
		c.ipady = 2;
		c.gridwidth = 2;
		c.gridheight = 1;
		c.fill = GridBagConstraints.BOTH;
		c.gridx = 1;
		c.gridy = 1;
		
		infoPane.add(varShortDescr, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1.0;
		c.gridwidth = 1;
		c.gridx = 3;
		c.gridy = 1;
		infoPane.add(labelLongDescr, c);
		
		c.fill = GridBagConstraints.BOTH;
		c.weightx = 1.0;
		c.gridwidth = 3;
		c.gridx = 4;
		c.gridy = 1;
		infoPane.add(varLongDescr, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1.0;
		c.gridwidth = 1;
		c.gridx = 0;
		c.gridy = 2;
		infoPane.add(labelBeginDate, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1.0;
		c.gridwidth = 1;
		c.gridx = 1;
		c.gridy = 2;
		infoPane.add(varBeginDate, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1.0;
		c.gridwidth = 1;
		c.gridx = 3;
		c.gridy = 2;
		infoPane.add(labelEndDate, c);
		
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1.0;
		c.gridwidth = 1;
		c.gridx = 4;
		c.gridy = 2;
		infoPane.add(varEndDate, c);
		
        ///////////////////////////////
        // Ende von Info Panel
        ///////////////////////////////
		
		
		/////////////////
		// Footer JPanel
		////////////////
		
		footerPane = new JPanel();
        
        footerPane.setLayout(new GridBagLayout());
        GridBagConstraints la = new GridBagConstraints();
        
        la.insets = new Insets(10,10,10,10);  //top padding
        
		la.fill = GridBagConstraints.CENTER;
		la.weightx = 0.01;
		la.gridx = 3;
		la.gridy = 1;
		footerPane.add(save, la);
		
		la.fill = GridBagConstraints.CENTER;
		la.weightx = 0.01;
		la.gridheight = 1;
		la.gridx = 4;
		la.gridy = 1;
		
		
		
		footerPane.add(abort,la);
	    
	    costPane = new JPanel();
	    costPane.setLayout(new GridBagLayout());
	    costPane.setMinimumSize(new Dimension(250,250));
	  //  costPane.setMaximumSize(new Dimension(450,200));
        GridBagConstraints g = new GridBagConstraints();
        
       // costPane.setPreferredSize(new Dimension(400,200));
        
        g.insets = new Insets(10,10,10,10);  //top padding
        
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 0.01;
		g.gridx = 2;
		g.gridy = 1;
		costPane.add(labelTotalcost, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 1.0;
		g.gridheight = 1;
		g.gridx = 3;
		g.gridy = 1;
		costPane.add(varTotalcost, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 0.01;
		g.gridwidth = 1;
		g.gridx = 0;
		g.gridy = 0;
		costPane.add(labelTotalpriceNoDiscount, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 0.1;
		g.gridwidth = 1;
		g.gridx = 1;
		g.gridy = 0;
		costPane.add(varTotalpriceNoDiscount, g);		
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 0.01;
		g.gridwidth = 1;
		g.gridx = 2;
		g.gridy = 0;
		costPane.add(labelTotalpriceYesDiscount, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 0.1;
		g.gridwidth = 1;
		g.gridx = 3;
		g.gridy = 0;
		costPane.add(varTotalpriceYesDiscount, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 0.01;
		g.gridwidth = 1;
		g.gridx = 2;
		g.gridy = 2;
		costPane.add(labelMarginalIncome, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 1.0;
		g.gridwidth = 1;
		g.gridx = 3;
		g.gridy = 2;
		costPane.add(varMarginalIncome, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 0.01;
		g.gridwidth = 1;
		g.gridx = 4;
		g.gridy = 0;
		costPane.add(labelWeightedAverageDiscount, g);
		
		g.fill = GridBagConstraints.HORIZONTAL;
		g.weightx = 1.0;
		g.gridwidth = 1;
		g.gridx = 5;
		g.gridy = 0;
		costPane.add(varWeightedAverageDiscount, g);
		
		////////////////
		// Gesamtkomponenten befüllen
		////////////////

        
        // Erstelle JScrollPane für Artikelbaum / Exploreranzeige
        JScrollPane scrollPaneTree = new JScrollPane();
		DefaultTreeModel treeModel=new DefaultTreeModel(getTree());
		final JTree tree = new JTree(treeModel); 
		scrollPaneTree.setViewportView(tree);

		scrollPaneTree.setMinimumSize(new Dimension(80,200));
        JScrollPane scrollPaneTable = new JScrollPane();
                
        table = new JModdedTable(tableModel);
        table.setFillsViewportHeight(true);
        
        
        scrollPaneTable.setViewportView(table);
        scrollPaneTable.setVerticalScrollBar(new JScrollBar());
        scrollPaneTable.setMinimumSize(new Dimension(450,200));
        scrollPaneTable.setMaximumSize(new Dimension(450,700));
        
        JMenuItem itemNeu = new JMenuItem("Neue Datei");
        
        popupBackground.add(itemNeu);
        
        
        
        contentPane = new JPanel();
        contentPane.setLayout(new GridBagLayout());  
        contentPane.setMinimumSize(new Dimension(1000, 450));
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        
       
        
     // ContenPane - Einstellungen
  		GridBagConstraints constraintContentPane = new GridBagConstraints();
          
     //     constraintContentPane.insets = new Insets(10,10,10,10);  //top padding
          constraintContentPane.fill = GridBagConstraints.BOTH;
          constraintContentPane.weightx = 1;
          constraintContentPane.weighty = 1;
          constraintContentPane.gridheight = 3;
          constraintContentPane.gridwidth = 1;
          constraintContentPane.gridx = 1;
          constraintContentPane.gridy = 1;
          contentPane.add(scrollPaneTree, constraintContentPane);
          
          constraintContentPane.fill = GridBagConstraints.BOTH;
          constraintContentPane.weightx = 1;
          constraintContentPane.weighty = 1;
          constraintContentPane.gridheight = 1;
          constraintContentPane.gridwidth = 3;
          constraintContentPane.gridx = 2;
          constraintContentPane.gridy = 1;
          contentPane.add(infoPane, constraintContentPane);
          
          constraintContentPane.fill = GridBagConstraints.BOTH;
          constraintContentPane.weightx = 1;
          constraintContentPane.weighty = 1;
          constraintContentPane.gridheight = 1;
          constraintContentPane.gridwidth = 3;
          constraintContentPane.gridx = 2;
          constraintContentPane.gridy = 2;
          contentPane.add(scrollPaneTable, constraintContentPane);
          
          constraintContentPane.fill = GridBagConstraints.BOTH;
          constraintContentPane.weightx = 1;
          constraintContentPane.weighty = 1;
          constraintContentPane.gridheight = 1;
          constraintContentPane.gridwidth = 3;
          constraintContentPane.gridx = 2;
          constraintContentPane.gridy = 3;
          contentPane.add(costPane, constraintContentPane);
          
          //contentPane.add(splitPane, constraintContentPane);
          
          constraintContentPane.fill = GridBagConstraints.BOTH;
          constraintContentPane.weightx = 1;
          constraintContentPane.weighty = 1;
          constraintContentPane.gridheight = 1;
          constraintContentPane.gridwidth = 1;
          constraintContentPane.gridx = 3;
          constraintContentPane.gridy = 4;
          
          contentPane.add(save, constraintContentPane);
          
          constraintContentPane.fill = GridBagConstraints.BOTH;
          constraintContentPane.weightx = 1;
          constraintContentPane.weighty = 1;
          constraintContentPane.gridheight = 1;
          constraintContentPane.gridwidth = 1;
          constraintContentPane.gridx = 4;
          constraintContentPane.gridy = 4;
          
          contentPane.add(abort, constraintContentPane);
          
          
        
        // JFrame - Einstellungen
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          //      setExtendedState(JFrame.MAXIMIZED_BOTH);
                setMinimumSize(new Dimension(1000,550));
                //setBounds(100, 100, 1000, 600);
                
                
                setLayout(new GridBagLayout());              // GridLayout setzen       
                setVisible(true); 
                pack();
          
      		GridBagConstraints constraintJFrame = new GridBagConstraints();
              
            //  constraintJFrame.insets = new Insets(10,10,10,10);  //top padding
              constraintJFrame.fill = GridBagConstraints.BOTH;
              constraintJFrame.gridheight = 4;
              constraintJFrame.gridwidth = 4;
              constraintJFrame.gridx = 1;
              constraintJFrame.gridy = 1;

        add(contentPane, constraintJFrame);
        
        JMenuItem itemOefnnen = new JMenuItem("\u00D6ffnen");
        
        
        //MAT-Nr Spalte unsichtbar setzen
        htcm = new HidableTableColumnModel(table.getColumnModel());
        htcm.setColumnVisible(1, false);
        
        //Spaltenbreite vergeben 
        table.getColumnModel().getColumn(0).setPreferredWidth(48);
        table.getColumnModel().getColumn(2).setPreferredWidth(94);
        table.getColumnModel().getColumn(3).setPreferredWidth(100);
        table.getColumnModel().getColumn(4).setPreferredWidth(95);
        table.getColumnModel().getColumn(5).setPreferredWidth(100);
        table.getColumnModel().getColumn(6).setPreferredWidth(60);
        table.getColumnModel().getColumn(7).setPreferredWidth(115);
       
        //Erlaubt nur Doube in der Spalte "Menge" bis zu 100.000 Stk / Artikel
        table.getColumnModel().getColumn(0).setCellEditor(new DoubleEditor(0,100000));
        
        ///////////////////////////////
        // Erstellen von Gesamtkomponenten befüllen
        ///////////////////////////////
        
        
        ///////////////////////////////
        // Ende von Gesamtkomponenten befüllen
        ///////////////////////////////


		
     
        
        
        
        
        
    } //End of constructor Explorer
    

    
    
    
    
    public int doubledRow(TableModel tableModel,int MaterialNr){
		int row=-1;
		for (int z = 0; z < tableModel.getRowCount(); z++) {         
			if(tableModel.getValueAt(z, 1).equals(MaterialNr)) {
				row=z;  
				System.out.println("Doppelt");
	  	}           		       
		}
		return row; 
	} //end of doubledRow
    
    public DefaultMutableTreeNode getTree() {
		
		List<String[]> flatData = new ArrayList<String[]>();
		
		int numberofLevels=2;
			for(int i=0;i<listDB.size();i++){
			String NR=	""+listDB.get(i).getMaterialNR();
		flatData.add(new String[] {listDB.get(i).getMaterial(),listDB.get(i).getArtikel(),
				listDB.get(i).getSize(),NR,listDB.get(i).getProducer(),
				String.valueOf(listDB.get(i).getPurchasePrice()),String.valueOf(listDB.get(i).getSellingPrice()),
				String.valueOf(listDB.get(i).getMaximumDiscount())});	
			}
		
			final DefaultMutableTreeNode root = new DefaultMutableTreeNode();
			root.setUserObject("Materialauswahl");	
			final Stack<DefaultMutableTreeNode> stack =
			      new Stack<DefaultMutableTreeNode>();
			for (String[] row : flatData) {
			  // adjust stack to match level
				
			  final Iterator<DefaultMutableTreeNode> stackIt = stack.iterator();
			  
			  for (int level = 0; level <=numberofLevels && stackIt.hasNext(); level++) {
			    if (!stackIt.next().getUserObject().equals(row[level])) {
			      stack.setSize(level);
			      break;
			    }
			  }
			 
			  // rebuild trail of stack
			  for (int level = stack.size(); level <= numberofLevels; level++) {
			    final String s = row[level];
			    final MyLeaf child = new MyLeaf(s);			    
			    child.setMaterialNR(Integer.parseInt(row[3]));
			    child.setMaterialname(row[0]);
			    child.setArtikelname(row[1]);
			    child.setSizename(row[2]);
			    child.setProducer(row[4]);
			    child.setPurchasePrice(Double.parseDouble(row[5]));
			    child.setSellingPrice(Double.parseDouble(row[6]));
			    child.setMaximumDiscount(Double.parseDouble(row[7]));
			    (stack.isEmpty() ? root : stack.peek()).add(child);
			    stack.push(child);
			  }
			}	
		return root;
	} // end of getTree()
    
    
    
    
} //end of Class Explorer
 

Kjubert

Aktives Mitglied
Ich hab mir jetzt mal WindowBuilder runtergeladen und muss sagen, dass der mir schon viel sympatischer ist, als Jigloo (allein schon, weil er OpenSource ist) - viel besseres Handling. Hab Jigloo direkt eingestampft (Danke an L-ectron-X für den Tipp!). Man will die GUIs einfach nicht immer von Hand basteln...
Jedenfalls lassen sich auch damit die stärken der Layouts super ausspielen: z.B. im WindowBuilder einfach dem Container das GroupLauyout zuweisen, dann kann für jede einzelne Komponente einstellen wonach sie sich ausrichten/vergrößern/verkleinern soll. Einfach markieren und rechts oben in der Ecke einstellen.
WindowBuilder gibts hier:
Installing WindowBuilder Pro

Fummel dich da mal durch - dann klappts ganz sicher.
 

L-ectron-X

Gesperrter Benutzer
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
_user_q JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11
Davee JavaFX JavaFX Jar ausführbar jedoch nicht alle Stages AWT, Swing, JavaFX & SWT 3
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
D JavaFX Alle Knöpfe auf die gleiche Größe AWT, Swing, JavaFX & SWT 14
M Gui-Form alle Labels anzeigen AWT, Swing, JavaFX & SWT 4
M Alle Schriftarten in JComboBox AWT, Swing, JavaFX & SWT 5
X Swing setContentPane verdeckt mir alle Buttons Labels etc... AWT, Swing, JavaFX & SWT 14
N Swing Alle Objekte anzeigen auch bei JPanel-Überlappung AWT, Swing, JavaFX & SWT 6
Bluedaishi JTable alle Zeilen löschen AWT, Swing, JavaFX & SWT 7
J CellEditorListener wird für ALLE Zellen ausgeführt AWT, Swing, JavaFX & SWT 2
A JDialog (modal) blockiert alle Fenster! AWT, Swing, JavaFX & SWT 2
J Alle Komponenten eines JFrames durchlaufen AWT, Swing, JavaFX & SWT 2
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
C Swing JTattoo - Look and Feel für ALLE User AWT, Swing, JavaFX & SWT 5
T Swing Font für alle Komponenten ändern AWT, Swing, JavaFX & SWT 2
A Swing Alle Komponenten auf JFrame ermitteln AWT, Swing, JavaFX & SWT 4
O JFrame: Daten alle paar Sekunden aktualisieren AWT, Swing, JavaFX & SWT 3
X Alle Components eines JPanels Enablen AWT, Swing, JavaFX & SWT 7
AyKay SWT (alle) Listener bzw. ModifyEventListener entfernen AWT, Swing, JavaFX & SWT 2
D Funktion JList.getSelectedValues() gibt nicht alle values zurück AWT, Swing, JavaFX & SWT 2
E Swing TableCellRenderer für alle Splaten setzen?! AWT, Swing, JavaFX & SWT 3
V Alle offenen jDialoge schliessen AWT, Swing, JavaFX & SWT 3
M Alle Frame Methoden AWT, Swing, JavaFX & SWT 2
L 3D-Grafik Java3D - Alle SceneGraphObjects geordnet erhalten AWT, Swing, JavaFX & SWT 2
F Nicht alle Bilder werden angezeigt AWT, Swing, JavaFX & SWT 2
Iron Monkey Alle Anwendungen werden miniert AWT, Swing, JavaFX & SWT 2
D ALLE exceptions in Log fenster anzeigen AWT, Swing, JavaFX & SWT 17
C JTable: Alle selektierten Zellen abfangen AWT, Swing, JavaFX & SWT 13
J alle Ordner in einem Ordner anzeigen(Jlist) AWT, Swing, JavaFX & SWT 44
M Swing Dankeschön an alle AWT, Swing, JavaFX & SWT 8
S Java3D: Alle Objekte in BranchGroup löschen während Laufzeit AWT, Swing, JavaFX & SWT 3
kodela alle Buttons einer ToggleButtonGroup deselektieren AWT, Swing, JavaFX & SWT 2
Milady Annzeigen alle Daten aus der Tabelle AWT, Swing, JavaFX & SWT 6
B MDI Anwendung alle maximierten InternalFrames in Tabs AWT, Swing, JavaFX & SWT 3
J Swing Monospace-Schrift für alle Systeme AWT, Swing, JavaFX & SWT 3
M Swing Alle Elemente eines Panels? AWT, Swing, JavaFX & SWT 9
J Swing Eine(und zwar ein und die selbe) WindowListener Instanz für alle JFrames AWT, Swing, JavaFX & SWT 8
J Swing Alle JFrames AWT, Swing, JavaFX & SWT 18
aze JTextfield nur so breit dass alle zeichen sichtbar sind AWT, Swing, JavaFX & SWT 2
R Swing alle Frames nutzen das gleiche Model AWT, Swing, JavaFX & SWT 2
André Uhres Swing Alle Komponenten eines JPanel aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 4
E Im Frame alle Componenten abrufen AWT, Swing, JavaFX & SWT 2
K Alle Events abfangen mit GlassPane AWT, Swing, JavaFX & SWT 7
T JTree - alle Nodes entfernen AWT, Swing, JavaFX & SWT 8
D JCheckBoxItem in Untermenüs alle gleichzeitig an- bzw. aus AWT, Swing, JavaFX & SWT 3
E Drag&Drop JTable; Renderer füllt alle Zellen AWT, Swing, JavaFX & SWT 10
G Alle Werte einer Spalte in JTable zusammenrechnen AWT, Swing, JavaFX & SWT 2
G Alle Komponenten eines JPanels durchlaufen AWT, Swing, JavaFX & SWT 11
T Alle Folgefenster sollen im Hauptfenster geöffnet werden AWT, Swing, JavaFX & SWT 3
P Alle Komponenten von JPanel in der Mitte entfernen AWT, Swing, JavaFX & SWT 2
G Eine Schiftart für alle Komponenten festlegen AWT, Swing, JavaFX & SWT 6
G WindowListener für alle Fenster AWT, Swing, JavaFX & SWT 4
H <Synth> Alle die sich auskennen Bitte hier rein schaue AWT, Swing, JavaFX & SWT 2
Paule alle Elemente eines SWT Trees AWT, Swing, JavaFX & SWT 8
H JFileChooser für alle Dateien und Directories unterhalb AWT, Swing, JavaFX & SWT 7
C Beim Schließen eines fensters, schließen sich alle AWT, Swing, JavaFX & SWT 5
G Nicht alle Komponenten werden angezeigt AWT, Swing, JavaFX & SWT 8
S Alle EventListener einer JComponent abfragen? AWT, Swing, JavaFX & SWT 3
0 JList alle 20 Sekunden aktualisieren? AWT, Swing, JavaFX & SWT 8
K Graphics-Objekt zeichnet nicht alle Bilder AWT, Swing, JavaFX & SWT 3
M Listener für alle inneren Elemente gültig machen? AWT, Swing, JavaFX & SWT 5
M JList zeigt nicht alle Elemente AWT, Swing, JavaFX & SWT 4
B Alle URLs aller offenen Browser. AWT, Swing, JavaFX & SWT 12
N Alle Pixel-Koordinaten von z.B. g.drawLine(.) speichern AWT, Swing, JavaFX & SWT 7
L Alle Inhalte in BorderLayout.CENTER löschen? AWT, Swing, JavaFX & SWT 2
N Alle Komponenten eines JPanel aktivieren/deaktivieren? AWT, Swing, JavaFX & SWT 5
J [SWT] alle Zellen in einem Tree einzeln selektieren AWT, Swing, JavaFX & SWT 2
T JTree alle nodes expanden AWT, Swing, JavaFX & SWT 4
M Hauptfenster und alle Kinder schließen? AWT, Swing, JavaFX & SWT 7
T Alle Kinder eines JTree bekommen AWT, Swing, JavaFX & SWT 11
G Double-Click f. alle Komps UNIX u. WIN verschieden ? AWT, Swing, JavaFX & SWT 5
P TableCellRender für ALLE Spalten AWT, Swing, JavaFX & SWT 10
G Alle Elemente eines JPanel herausfinden? AWT, Swing, JavaFX & SWT 3
Luma Alle Fenster verstecken und wieder sichtbar machen? AWT, Swing, JavaFX & SWT 6
D Alle Inhalte einer JTextArea in einem JScrollPane löschen AWT, Swing, JavaFX & SWT 2
P JTree: Alle Knoten geöffnet anzeigen AWT, Swing, JavaFX & SWT 2
P JTree: alle Elemente ausklappen AWT, Swing, JavaFX & SWT 3
bernd JTree: alle Laufwerke anzeigen AWT, Swing, JavaFX & SWT 3
B Alle jMenu und JMenuItem in einem Array AWT, Swing, JavaFX & SWT 4
R removeAll() beseitigt nicht alle Komponenten!? AWT, Swing, JavaFX & SWT 11
M JTabbedPane zeigt alle Panels übereinander an :( AWT, Swing, JavaFX & SWT 8
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben