Skip to content
Snippets Groups Projects
Commit 69544687 authored by steyer's avatar steyer
Browse files

GameWindow + GameBoardTable

parent 6592e84f
Branches
No related tags found
No related merge requests found
package game;
import javax.swing.*;
import javax.swing.table.TableModel;
public class GameBoardTable extends JTable {
public GameBoardTable (TableModel model){
super(model);
int height = getRowHeight();
for (int i = 0; i<model.getColumnCount(); i++){
getColumnModel().getColumn(i).setPreferredWidth(height);
}
setDefaultRenderer(Boolean.class, new GameCellRenderer());
}
}
package game;
import javax.swing.*;
import javax.swing.table.TableCellRenderer;
import java.awt.*;
public class GameCellRenderer implements TableCellRenderer {
private TableCellRenderer defaultRenderer;
public GameCellRenderer() {
defaultRenderer = new JTable().getDefaultRenderer(Object.class);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
Component component = defaultRenderer.getTableCellRendererComponent(table, null,
false, false, row, column);
if ((boolean) table.getValueAt(row, column)) {
component.setBackground(Color.DARK_GRAY);
} else {
component.setBackground(Color.WHITE);
}
return component;
}
}
...@@ -72,7 +72,6 @@ public class GameModel extends AbstractTableModel { ...@@ -72,7 +72,6 @@ public class GameModel extends AbstractTableModel {
public void setValueAt(Object aValue, int rowIndex, int columnIndex) { public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
board.get(rowIndex, columnIndex).setAlive((boolean) aValue); board.get(rowIndex, columnIndex).setAlive((boolean) aValue);
} }
public void step() { public void step() {
......
...@@ -7,6 +7,8 @@ import java.awt.*; ...@@ -7,6 +7,8 @@ import java.awt.*;
public class GameWindow extends JFrame { public class GameWindow extends JFrame {
//TODO JMenu
private GameModel model; private GameModel model;
private JTable table; private JTable table;
JFileChooser fileChooser; JFileChooser fileChooser;
...@@ -14,18 +16,14 @@ public class GameWindow extends JFrame { ...@@ -14,18 +16,14 @@ public class GameWindow extends JFrame {
public GameWindow(GameModel model){ public GameWindow(GameModel model){
super("Game of Life"); super("Game of Life");
this.model = model; this.model = model;
table = new JTable(model); table = new GameBoardTable(model);
fileChooser = new JFileChooser(); fileChooser = new JFileChooser();
FileFilter filter = new FileNameExtensionFilter("JSON File (.json)", "json"); FileFilter filter = new FileNameExtensionFilter("JSON File (.json)", "json");
fileChooser.setFileFilter(filter); fileChooser.setFileFilter(filter);
//table.setPreferredSize(new Dimension(300, 300)); //TODO igazodjon a táblához
setLayout(new BorderLayout()); setLayout(new BorderLayout());
add(table, BorderLayout.CENTER); add(table, BorderLayout.CENTER);
//setSize(300, 300); TODO törölni
JPanel bottomPanel = new JPanel(); JPanel bottomPanel = new JPanel();
JButton startButton = new JButton("Start"); JButton startButton = new JButton("Start");
JButton stopButton = new JButton("Stop"); JButton stopButton = new JButton("Stop");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment