Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Пробемы с JTable + JScrollPane / 12 сообщений из 12, страница 1 из 1
29.12.2013, 08:59
    #38515261
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Данные не отображаются в таблице, вот код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
...
String[][] Cars = null;
...
бла бла бла
...

			while (rs.next()) {
				Cars = new String[0][5];
				Cars[0][0] = "a";
				Cars[0][1] = "b";
				Cars[0][2] = "c";
				Cars[0][3] = "d";
				Cars[0][4] = "e";
				Cars[0][5] = "f";

                         }
return Cars

...



Вызываю функцию с другого класса для заполнения таблицы:

Сперва создаю таблицу и прочее:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
	private void initialize() {
           		table = new JTable();
		scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		BottomPanel.add(scrollPane, BorderLayout.CENTER);
		scrollPane.setViewportView(table);
		scrollPane.setVisible(true);

        } 


при нажатии кнопки должна отобразиться таблица:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
			public void actionPerformed(ActionEvent arg0) {
				try {
					String[] Header = {"1", "2", "3", "4", "5", "6"};
                                        //вызываю функцию с того класса который возвращает мне двухмерный массив Cars[][] при помощи функции getCars()
					table = new JTable(TCLoadpkg.searchByCar.getCars(CarNoTxtField.getText().toString()), Header);
					table.setVisible(true);
					scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
					scrollPane.setVisible(true);
				} catch (Exception e) {
					System.out.println(e);
				}
			}


Где ошибка парни?
Из БД резалтсет вытаскиывает данные, передает через функцию список Cars[][] а в таблице не отображается.

Прошу помочь. Мне кажется я что то забаламутил с таблицей и скролпан-ом.
...
Рейтинг: 0 / 0
29.12.2013, 09:05
    #38515263
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Сорри я тут вместо данных из БД для тестa поставил статические значения:

столбцы 1-5
записи a,b,c,d,e,f
...
Рейтинг: 0 / 0
31.12.2013, 15:25
    #38516562
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Народ подскажите кто нибудь, в чем моя ошибка? Сделайте подарок на НГ :)
...
Рейтинг: 0 / 0
01.01.2014, 08:52
    #38516766
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Всем спасибо, разобрался, только еще один вопрос, форма показывает таблицу и данные из БД но при повторном добавлении старые записи в JTable остаются а новые не добавляются, как refresh-нуть JPanel в котором находится JScrollPane, JTable?
...
Рейтинг: 0 / 0
01.01.2014, 11:26
    #38516775
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Где моя ошибка? подскажите? Таблицу не отображает:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
		searchBtn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {

				try {
					if (isCar) {
					    String[] Header = {"Номер состава", "Номер вагона", "Вес вагона", "Дата взвешивания", "Номер весовой", "Направление"};
						JTable table = new JTable(TCLoadpkg.searchByCar.getCars(CarNoTxtField.getText().toString()), Header);
						table.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
						table.setFont(new Font("Tahoma", Font.PLAIN, 10));
						table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
						JScrollPane scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
						scrollPane.setLayout(null);
						JPanel BottomPanel = new JPanel();
						BottomPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
						BottomPanel.setBounds(10, 109, 998, 562);
						BottomPanel.setLayout(null);
						BottomPanel.setLayout(new BorderLayout(0, 0));
						BottomPanel.add(scrollPane, BorderLayout.CENTER);
					    MainFrame.getContentPane().add(BottomPanel);
					    MainFrame.setVisible(true);
					}
					else {
						String[] Header = {"Номер состава", "Номер вагона", "Вес вагона", "Дата взвешивания", "Номер весовой", "Направление"};
						JTable table = new JTable(TCLoadpkg.searchByTrain.getTrains(CarNoTxtField.getText().toString()), Header);
						table.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
						table.setFont(new Font("Tahoma", Font.PLAIN, 10));
						table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
						JScrollPane scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
						scrollPane.setLayout(null);
						JPanel BottomPanel = new JPanel();
						BottomPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
						BottomPanel.setBounds(10, 109, 998, 562);
						BottomPanel.setLayout(null);
						BottomPanel.setLayout(new BorderLayout(0, 0));
						BottomPanel.add(scrollPane, BorderLayout.CENTER);
						MainFrame.getContentPane().add(BottomPanel);
						MainFrame.setVisible(true);
						
					}
					
				} catch (Exception e) {
					System.out.println(e);
				}
			}
		});
...
Рейтинг: 0 / 0
01.01.2014, 15:31
    #38516813
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Все разобрался, прошу подсказать у меня таблица загружается в JTable но скролл не разрешает двигать. Не могу так же выделять ячейки. Прошу помочь
...
Рейтинг: 0 / 0
03.01.2014, 14:25
    #38517276
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Вот ниже простой код, таблица покажет данные но данные я не могу выбрать, таблица как будто не доступна, если загрузить большой массив и появится скролбар то его прокрутка тоже не активная, в чем ошибка?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
public class TCLoader {
private JTable table;

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TCLoader window = new TCLoader();
					window.MainFrame.setVisible(true);

				} 
				catch (Exception e) {
					System.out.println(e);
				}
			}
		});
	}

	public TCLoader() {
		initialize();
	}

	private void initialize() { 
	     try{
		MainFrame = new JFrame();
		MainFrame.setBounds(100, 100, 1024, 768);
		MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		MainFrame.getContentPane().setLayout(null);
		MainFrame.setResizable(false);
		
		jbutton1.addMouseListener(new MouseAdapter() {
                  public void mouseClicked(MouseEvent arg0) {
		    String[] Header = {"header1", "header2"};
		    String[][] data = new String[2][2];
                    data[0][0] = "A";
                    data[0][1] = "B";
                    data[1][0] = "C";
                    data[1][1] = "D";
		    JTable table = new JTable(data, Header);
                    table.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
		    table.setFont(new Font("Tahoma", Font.PLAIN, 11));
		    JScrollPane scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		    BottomPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
		    BottomPanel.setBounds(10, 109, 998, 562);
		    BottomPanel.setLayout(new BorderLayout(0, 0));
		    BottomPanel.add(scrollPane, BorderLayout.CENTER);
    	            MainFrame.getContentPane().add(BottomPanel);
	            MainFrame.setVisible(true);
		    
		  }
		}
	    } catch(Exception e) {System.out.println(e);}

        }
}
...
Рейтинг: 0 / 0
03.01.2014, 14:39
    #38517281
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
С этим я разобрался, у меня другой вопрос, теперь таблицы выделяются и все нормально, но произходит вот что:

Первый раз загружаю данные в таблицу при нажатии кнопки, потом второй раз нажимаю кнопку уже с другими критериямяи выборки, данные загружаются но если нажать на саму таблицу старые данные тоже загружаются, там слой на слой делает, как этого избежать?
...
Рейтинг: 0 / 0
03.01.2014, 17:47
    #38517380
output
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
LiQuid
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
jbutton1.addMouseListener(new MouseAdapter() {
       public void mouseClicked(MouseEvent arg0) {
       String[] Header = {"header1", "header2"};
       String[][] data = new String[2][2];
       data[0][0] = "A";
       JTable table = new JTable(data, Header);
       ......
}


А Вы попробуйте по нажатию кнопки не рисовать каждый раз таблицу, а просто вставлять новые данные.
...
Рейтинг: 0 / 0
03.01.2014, 18:56
    #38517405
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
LiQuid,

Может всё таки с TableModel разобраться, что бы не перерисовывать каждый раз таблицу?
...
Рейтинг: 0 / 0
03.01.2014, 22:18
    #38517477
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
Прошу прощения, а здесь:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
			while (rs.next()) {
				Cars = new String[0][5];
				Cars[0][0] = "a";
				Cars[0][1] = "b";
				Cars[0][2] = "c";
				Cars[0][3] = "d";
				Cars[0][4] = "e";
				Cars[0][5] = "f";

                         }


разве все в порядке?
...
Рейтинг: 0 / 0
04.01.2014, 05:46
    #38517543
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробемы с JTable + JScrollPane
outputLiQuid
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
jbutton1.addMouseListener(new MouseAdapter() {
       public void mouseClicked(MouseEvent arg0) {
       String[] Header = {"header1", "header2"};
       String[][] data = new String[2][2];
       data[0][0] = "A";
       JTable table = new JTable(data, Header);
       ......
}


А Вы попробуйте по нажатию кнопки не рисовать каждый раз таблицу, а просто вставлять новые данные.

Извините, а как каждый раз вставлять новые данные? Ведь нужно сразу при создании таблиции определить какой двухмерный массив и одномерный массив шапка будут в таблице???

Можно пример? Скажем при создании JTable создается таблица а при нажатии кнопки обновляются оба массива.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Пробемы с JTable + JScrollPane / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]