powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пробемы с JTable + JScrollPane
12 сообщений из 12, страница 1 из 1
Пробемы с JTable + JScrollPane
    #38515261
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные не отображаются в таблице, вот код:
Код: 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
Пробемы с JTable + JScrollPane
    #38515263
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри я тут вместо данных из БД для тестa поставил статические значения:

столбцы 1-5
записи a,b,c,d,e,f
...
Рейтинг: 0 / 0
Пробемы с JTable + JScrollPane
    #38516562
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ подскажите кто нибудь, в чем моя ошибка? Сделайте подарок на НГ :)
...
Рейтинг: 0 / 0
Пробемы с JTable + JScrollPane
    #38516766
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, разобрался, только еще один вопрос, форма показывает таблицу и данные из БД но при повторном добавлении старые записи в JTable остаются а новые не добавляются, как refresh-нуть JPanel в котором находится JScrollPane, JTable?
...
Рейтинг: 0 / 0
Пробемы с JTable + JScrollPane
    #38516775
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где моя ошибка? подскажите? Таблицу не отображает:
Код: 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
Пробемы с JTable + JScrollPane
    #38516813
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все разобрался, прошу подсказать у меня таблица загружается в JTable но скролл не разрешает двигать. Не могу так же выделять ячейки. Прошу помочь
...
Рейтинг: 0 / 0
Пробемы с JTable + JScrollPane
    #38517276
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ниже простой код, таблица покажет данные но данные я не могу выбрать, таблица как будто не доступна, если загрузить большой массив и появится скролбар то его прокрутка тоже не активная, в чем ошибка?
Код: 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
Пробемы с JTable + JScrollPane
    #38517281
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С этим я разобрался, у меня другой вопрос, теперь таблицы выделяются и все нормально, но произходит вот что:

Первый раз загружаю данные в таблицу при нажатии кнопки, потом второй раз нажимаю кнопку уже с другими критериямяи выборки, данные загружаются но если нажать на саму таблицу старые данные тоже загружаются, там слой на слой делает, как этого избежать?
...
Рейтинг: 0 / 0
Пробемы с JTable + JScrollPane
    #38517380
output
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Пробемы с JTable + JScrollPane
    #38517405
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiQuid,

Может всё таки с TableModel разобраться, что бы не перерисовывать каждый раз таблицу?
...
Рейтинг: 0 / 0
Пробемы с JTable + JScrollPane
    #38517477
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, а здесь:
Код: 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
Пробемы с JTable + JScrollPane
    #38517543
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Пробемы с JTable + JScrollPane
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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