JTable braucht wie jede vorgefertigte GUI einfach zu viel Quelltext
Warum sollte die mehr Quelltext brauchen? Es müsste eigentlich weniger noch geschrieben werden.
MFG
Sascha
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
JTable braucht wie jede vorgefertigte GUI einfach zu viel Quelltext
was hat groß- und kleinschreibung hiermit zu tun ? ich denke doch das du, solange satzzeichen vorhanden sind, den satz ohne probleme lesen können solltest.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
public class JTableGrid
extends JFrame
{
public JTableGrid()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
JTable table = new JTable(new AliveTableModel());
table.setDefaultRenderer(Object.class, new AliveCellRenderer());
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setRowHeight(50);
table.setValueAt(true, 5, 5);
table.setValueAt(true, 1, 2);
JPanel panel = new JPanel();
panel.add(table);
add(panel, BorderLayout.CENTER);
pack();
}
private class AliveTableModel
extends AbstractTableModel
{
private Boolean[][] alive = new Boolean[10][10];
public AliveTableModel()
{
for (int i = 0; i < alive.length; i++)
{
for (int j = 0; j < alive[i].length; j++)
{
alive[i][j] = new Boolean(false);
}
}
}
public int getColumnCount()
{
return alive[0].length;
}
public int getRowCount()
{
return alive.length;
}
public Object getValueAt(int rowIndex, int columnIndex)
{
return alive[rowIndex][columnIndex];
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
{
alive[rowIndex][columnIndex] = (Boolean)aValue;
}
}
private class AliveCellRenderer
extends JLabel
implements TableCellRenderer
{
private Color blue = new Color(62, 101, 241);
private Color yellow = new Color(247, 250, 137);
public AliveCellRenderer()
{
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Boolean alive = (Boolean) value;
if (alive.booleanValue())
{
setBackground(blue);
}
else
{
setBackground(yellow);
}
return this;
}
}
public static void main(String[] args)
{
new JTableGrid().setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
public class Simulator extends JFrame
{
// instance variables - replace the example below with your own
// The default width for the grid.
private static final int DEFAULT_WIDTH = 50;
// The default depth of the grid.
private static final int DEFAULT_DEPTH = 50;
private JFrame frame;
private JPanel panel;
public Simulator()
{
// initialise instance variables
frame = new JFrame();
frame.setLayout(new BorderLayout());
panel = new JPanel(new GridLayout(20, 20)); // 20 * 20 Zellen
}
private void fillCells(Field field)
{
for(int i = 0; i<20; i++){
for(int j = 0; j<20;j++){
field[i][j] = true;
panel.add(field[i][j]);
}
}
this.setPreferredSize(new Dimension(DEFAULT_WIDTH,DEFAULT_DEPTH)); // deine Größe angeben
this.setBorder(new LineBorder(Color.black)); // dies ist später als Gitternetz sichtbar!
f.add(panel, BorderLayout.CENTER);
f.setVisible(true);
}
public void simulateOneStep()
{
fillCells();
}
public void clearField(Field[][] field)
{
for(int x=0; x<=field.getLength(); x++)
{
for(int y=0; y<=field.getWidth();y++)
{
field1[x][y] = null;
}
}
}
}
import javax.swing.*;
import java.awt.*;
/**
* Write a description of class Field here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Field extends JPanel
{
// instance variables - replace the example below with your own
private int length, width;
private boolean[][] field;
/**
* Constructor for objects of class Field
*/
public Field(int length, int width)
{
// initialise instance variables
this.length = length;
this.width = width;
field = new boolean[length][width];
}
public int getWidth()
{
return width;
}
public int getLength()
{
return length;
}
public int getNumberOfNeighbours(int x,int y)
{
return 2;
}
}
Soweit einhalten ist aber leider nicht einhalten. Regeln sind ja da, damit sie eingehalten werden und nicht damit sie vielleicht eingehalten werden.Ich denke einfach solange ich niemanden beleidige und die "Netiquette" soweit einhalte muss man nicht unbedingt pingelig werden gibt hie rimmerhin wichtigere Dinge.
field[i][j] = true;