/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package jifi.ui.view; import java.awt.Component; import java.util.ArrayList; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.UIManager; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumn; /** * * @author antunes2 */ public class MessageTab implements View { private static class Data { public int level; public Object focusable; public String msg; public Data(int level, Object focusable, String msg) { this.level = level; this.focusable = focusable; this.msg = msg; } } private static final ArrayList<Data> messages = new ArrayList<>(); private static final MyTableModel model = new MyTableModel(); private final ViewData data; private final JTable table; private final JScrollPane scrollPane; public MessageTab() { table = new JTable(model); scrollPane = new JScrollPane(table); data = new ViewData("Mensagens", null, "testet", scrollPane); TableColumn column; for (int i = 0; i < 3; i++) { column = table.getColumnModel().getColumn(i); if (i != 2) { column.setMaxWidth(100); } } for (int i = 0; i < 20; i++) { log(i, UIManager.getIcon("FileView.fileIcon"), "asd " + Math.random()); } } @Override public ViewData getData() { return data; } @Override public void update() { } @Override public void selected() { } public static void log(int level, Object focusable, String msg) { messages.add(new Data(level, focusable, msg)); model.fireTableDataChanged(); } static class MyTableModel extends AbstractTableModel { private final String[] columnNames = {"Level", "Local", "Mensagem"}; @Override public int getColumnCount() { return 3; } @Override public int getRowCount() { return messages.size(); } @Override public String getColumnName(int col) { return columnNames[col]; } @Override public Object getValueAt(int row, int col) { if (col == 0) { return messages.get(row).level; } else if (col == 1) { return messages.get(row).focusable; } else if (col == 2) { return messages.get(row).msg; } return ""; } @Override public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } @Override public boolean isCellEditable(int row, int col) { return false; } } }