Quadrate dnamisch erzeugen und beliebig füllen

  • Themenstarter Themenstarter Hallo123
  • Beginndatum Beginndatum
H

Hallo123

Gast
Hallo Community

ich möchte eine eine Oberfläche wie im Bild programmieren.
Dabei sollen die Quadrate dynamisch erzeugt werden (je nachdem wie viele Werte man in den Zeilen und Spalten hat) und ein Quadrat soll pro Zeile farblich makiert werden.

Da ich noch nicht so viel mit Java gemacht habe, habe ich auch keine wirkliche Idee, wie man so etwas umsetzen kann.

Schonmal danke 🙂

2vcqwft5_jpg.htm
 
Müssen wir für die Uni machen, dass ist Teil eines Programms, der Rest läuft schon, aber daran hängt es leider 🙁
 
Es geht ja nicht darum, es zu programmieren, sondern mal einen Tipp, wie man sowas machen könnte
 
Code:
import java.awt.Color;
import java.util.Vector;

import javax.swing.GroupLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class Elementcharakteristik {

	public static void main (String[] args)
	{	
		JLabel jLabel;
		JPanel panel=new JPanel();
	    GroupLayout layout = new GroupLayout(panel);
	    Border border = LineBorder.createBlackLineBorder();
		
	    Vector<JLabel> JCBKategorie = new Vector<JLabel>();
		for (int i = 0; i < 10; i++)
		{	
			jLabel = new JLabel(" "+i+" ");
			jLabel.setFont(new java.awt.Font("Tahoma", 0, 23));
			jLabel.setOpaque(true);
		    jLabel.setBackground(Color.blue);
		    jLabel.setForeground(Color.white);
		    jLabel.setBorder(border);
			JCBKategorie.add(jLabel); 
			
		}	
		
		
		Vector<JLabel> JCBKategorie2 = new Vector<JLabel>();
		
		
		for (int i = 0; i < 10; i++)
		{	
			jLabel = new JLabel("   ");
			jLabel.setFont(new java.awt.Font("Tahoma", 0, 23));

			jLabel.setOpaque(true);
		    jLabel.setBackground(Color.blue);
		    jLabel.setBorder(border);
			JCBKategorie2.add(jLabel); 
			
		}	
		GroupLayout.ParallelGroup PG = layout.createParallelGroup(GroupLayout.Alignment.LEADING);
		GroupLayout.SequentialGroup SG = layout.createSequentialGroup();
		
		
		for (int j = 0; j < JCBKategorie.size(); j++) 
		{
			PG.addComponent(JCBKategorie.get(j));
		}
		 
		Vector<GroupLayout.ParallelGroup> gruppe1 = new Vector<GroupLayout.ParallelGroup>();
		for(int i=0; i<10;i++) 
		{	
			gruppe1.add(PG);
		}

		
		
		for (int j = 0; j < JCBKategorie.size(); j++) 
		{
			SG.addComponent(JCBKategorie.get(j));
		}
		
		Vector<GroupLayout.SequentialGroup> gruppe2 = new Vector<GroupLayout.SequentialGroup>();
		for(int i=0; i<10;i++) 
		{	
			gruppe2.add(SG);
		}
		
		 JFrame  f = new JFrame();
		 f .setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		 f.setSize( 600, 600 );
		 f.add( panel);
		 f.setVisible( true );
		
		 layout.setVerticalGroup(layout.createSequentialGroup()
				.addGroup(gruppe1.get(0))
				.addGroup(gruppe1.get(1))
		 		.addGroup(gruppe1.get(2)));

		 layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
				.addGroup(gruppe2.get(0))
				.addGroup(gruppe2.get(1))
		 		.addGroup(gruppe2.get(2)));
	
		
		layout.setAutoCreateGaps(true);
		panel.setLayout(layout);

	}
}


das habe ich jetzt mal gemacht.
das Problem ist jetzt, dass immer nur die letzte Gruppe angezeigt wird =(
 

Zurück
Oben