Matthias Ronald Gerard
148 / 208 / 25
Регистрация: 11.08.2022
Сообщений: 2,056
1

Не отрисовывается заголвок таблицы в swing, созданный программно

30.05.2023, 01:19. Показов 886. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всём привет!
Рисую таблицу в коде swing.
Заголовки вроде бы добавил. НО они не выводятся. Выводится только таблица с данными.
Возвращаемую таблицу добавляю к JPanel.
Вот текст метода создания таблицы.

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package guestbook.jar;
 
import java.awt.*; 
import javax.swing.*;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
    public static JTable GetGuestBookTable()
    {
        String sql = "select guest, text from guestbook order by guest";
        Connection con = null;
        Statement st = null;
        ResultSet rs = null;
        
        //headers for the table
        String[] columns = new String[] {
            "Guest", "Text"
        };
        
        
        Object[][] data = new Object[100][2];
        int i = 0;
        
        try {
                con = DriverManager.getConnection(DBInit.url, DBInit.user, DBInit.password);
                st = con.createStatement();
                rs = st.executeQuery(sql);  
                
                String guest, text;
 
                while (rs.next()) {
                    guest = (String)rs.getString("guest");
                    text = (String)rs.getString("text");
                    
                    data[i][0] = guest;
                    data[i][1] = text;
                    //data.add(new GuestBookRecord(guest, text));
                    i++;
                }
                    
                rs.close();     
                st.close();
                con.close();
 
            } catch (SQLException ex) {
                System.out.println(ex.toString());
            }
        
        Object[][] data1 = new String[i][2];
        for(int j = 0; j < i; j++)
        {
            data1[j][0] = data[j][0];
            data1[j][1] = data[j][1];
        }
        
        //create table with data
        JTable table = new JTable(data1, columns);
        
        table.getColumnModel().getColumn(0).setPreferredWidth(150);
        table.getColumnModel().getColumn(1).setPreferredWidth(300);
        
        UIDefaults defaults = UIManager.getLookAndFeelDefaults();
        defaults.putIfAbsent("Table.alternateRowColor", Color.LIGHT_GRAY);
        
        return table;
    }
Добавлено через 1 час 0 минут
Среда разработки Eclipse - Последняя версия,
Java JDK 20, JavaFx 20.

Добавлено через 36 минут
Попробовал нарисовать таблицу в редакторе WindowBuilder.
Добавил столбцы и тестовые данные.
Но при запуске та же беда - заголовок таблицы не отрисовывается.

Добавлено через 2 часа 23 минуты
Не подключает класс обработчика
Java
1
UIManager.put("javax.swing.plaf.TableHeaderUI", MyTableHeaderUI.class.getName());
Сам класс
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
package guestbook.jar;
 
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.*;
import javax.swing.table.*;
import javax.swing.plaf.basic.*;
 
public class MyTableHeaderUI extends BasicTableHeaderUI {
    
    // UIDefaults.getUI(JComponent) will call this method via reflection
    public static ComponentUI createUI(JComponent h) {
        
        h.setVisible(true);
        h.setSize(450, 30);
        h.setBounds(0, 0, 450, 30);
 
        Graphics g = h.getGraphics();
        //provide character array
        char [] chararray = {'G', 'u', 'e', 's', 't'};
        //draw array of characters
        g.drawChars (chararray, 0, chararray.length, 10, 10);
        h.repaint();
        
        return new MyTableHeaderUI();
    }
 
    @Override
    public Dimension getPreferredSize(JComponent c) {
        return super.getPreferredSize(c);
    }
}
Отладчик не заходит в метод CreateUI.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2023, 01:19
Ответы с готовыми решениями:

Не сразу отрисовывается наследник JButton(SWING)
Создал наследника JButton, назвал его MyButton, при этом ни одного метода не переопределил, лишь...

Не отрисовывается панель (Java swing, awt)
Написал игру игру змейка, при запуске сразу начиналась игра. Появилась необходимость добавить меню...

Передать в программно созданный метод кнопки данные о программно создаваемых textBox
Здравствуйте. При создании приложения возникла такая проблема. Я программно создаю три textBox с...

Нажатие на программно созданный PictureBox
На панель pnlPlayground помещается PictureBox. Никак не могу обработать нажатие на это изображение....

0
30.05.2023, 01:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2023, 01:19
Помогаю со студенческими работами здесь

Идентифицировать Control созданный программно
В цикле создаю pictureBox'ы. Чтобы потом обращаться к ним надо задать Name. У меня k ( k=125 )...

Открыть программно созданный документ
Написал обработку по вводу платежек и выписки на основании доков на поступление ТМЦ. После записи...

Сохранить программно созданный документ Word
Здравствуйте, не получается сохранить документ MS Word. Вот что есть: object objMissing...

Очистить программно созданный массив TextBox
Уважаемые друзья. Создал массив TextBox-ов. Запускается и вроде работает. Споткнулся на его...

Как удалить программно созданный TextBox()
По нажатию кнопки создаю текстовое поле, а вот как удалить какое то конкретно в середине созданное...

Подписать на событие программно созданный label
привет всем)))создал програмно компонент(Label)) потом ему присвоил все свойства(namе,caption... и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru