![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Yulers |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
Я пытаюсь создать программу которая би позвлоляла менят цвет cell в JTable dinamically. весь Table например будет голубого цвета а когда я получу значение из класса Solver с позициеи он понеяет на желтии. Help please
public class ColorTable { static class ColorTableModel extends AbstractTableModel { String [] headers = new String []{"","","","","","","","","",""}; // Object[][] data = new Object[4][4]; ColorTableModel(int ctmCol, int ctmRow) { int userCol = ctmCol; int userRow = ctmRow; for (int row = 0; row < userCol; row++) for(int col = 0; col<userRow; col++) { { data[row][col] = new Color(0,0,255); } } } public int getRowCount(){return data.length;} public int getColumnCount(){return headers.length;} public String getColumnName(int column){return headers[column];} public Class getColumnClass(int column){return Color.class; } public boolean isCellEditiable(int rowIndex, int columnIndex){return true;} } static class ICColorRenderer implements TableCellRenderer { JButton button = new JButton(); public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (column ==0 && row==0) { button.setBackground(Color.YELLOW); } else button.setBackground((Color)value); return button; } } public ColorTable(int sCol, int sRow) { int cCol = sCol; int cRow = sRow; JFrame frame = new JFrame("Table with color and and on different color button"); frame.setSize(300,300); frame.setVisible(true); JTable table = new JTable(new ColorTableModel(cCol, cRow)); table.setDefaultRenderer(Color.class, new ICColorRenderer()); frame.getContentPane().add(table); } public int setSolverRandomLocation(int location) { return location; } } public class Solver { private InitialState istate; private Grid myGrid; protected ColorTable table; public Solver(InitialState init) { istate = init; myGrid = new Grid(init.numberRows, init.numberCols); table = new ColorTable(init.numberRows,init.numberCols); } public void Runsimulation() { for (int i = 0; i<istate.initCellValue; i++) { Random generator = new Random(); int x = generator.nextInt(2); //generate random number between 0 and 3. 100 is the number of cells on the screen int y = generator.nextInt(2); // generate random number between 0 and 3 System.out.println("Before I will put cell on the screen I will print all random numbers"+x+y); int k = x+y; table.setSolverRandomLocation(k); Location RandomLocation = new Location(x, y); boolean randomloc = myGrid.IsFree(RandomLocation); if (randomloc != false) { myGrid.SetCellrandomly(RandomLocation); } } for (int j=0; j<10; j++) // when the expiremnet is finished { ArrayList a = myGrid.GetCellList(); // we have got arraylist of cell location now I know whare all cells are. int t = a.size(); // Random generator = new Random(); int g = generator.nextInt(t); // pick randomly array position of the cell System.out.println("Size of the array"+t); System.out.println("The random generator of the cell: "+g); Location goLocation = new Location(myGrid.GetFreeNeighbourhoodCell((Location) a.get(g)));// sending to the location myGrid.MoveCell((Location) a.get(g), goLocation); myGrid.killcell((Location) a.get(g)); // timestamp ++; } } } |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
я не стал читать код, и никто не будет читать код - эти кракозялбы
пользуйся кнопкой "Код" на твой вопрос ответ - пиши свой Renderer |
|||
|
||||
Yulers |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
Ну так оно. Не получишь правелЬный ответ если не умеешь задать правилЬниый ответ. Попытаюсь снова. у меня ест несколько классов Driver - main Diver initialise Solver.
Solver initialised Grid . Теперья пытаюсь представит все это для " user" as GUI. Я решила исполЬзоватЬ JTable. для того чтобы показать картинку. это своего рода "Cellular Automata" все клетки белые если они пустые или черние если заняты. Solver manages JTable. теперь вопрос как менять цвет в jTable работаюшим по правилам solver. может быть JTable не самий лучшии вариант. Я просто потеряласЬ |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
1. я же просил оформить в код
![]() 2. там ты пишеш свой рендерер, который возвращает JButton, зачем? лучше уж JLabel возвратить!!! на JLabel клади любую картинку 3. этот код не запускается |
|||
|
||||
Yulers |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
Добавлено через 2 минуты и 57 секунд Я не волшебник, но я учусЬ... надеюсЬ код не такои страшныИ и понятныи ![]() |
|||
|
||||
IgorJ |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 3.5.2008 Репутация: нет Всего: нет |
я тебе постараюсь помочь.
правда меня забанили, ну да ладно, это мой косяк.
это хорошо, что есть стремление!!! рендерер пишется примерно так: (я его упростил на сколько мог)
|
||||
|
|||||
Yulers |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
спасибо болЬшое!! обьяснЬят не всегда хочется. Я пробобавала что такое же написать. а как вот соединитЬ s Solver. вот ето не получаеться. мне нужно взять части этого кода и применитЬ в JTable
то есть RandomLocation или value взятЬ из Solver. если например RandomLocation = (0,0) то цвет клетки в JTable должен быть чернии а весь осталЬнои JTable белыи если это понятно. Вот это я не знаю как сделатЬ |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |