Ĺadny brzuch
Mam taki kawałek kodu:
import javax.swing.*; import java.awt.*; public class TabelaTest extends JPanel { private static final long serialVersionUID = 1L; public TabelaTest() { super(new GridLayout(1,0)); String[] kolumny = {"Kolumna1", "Kolumna2", "Kolumna3"}; Object[][] data = { {"jeden", "Długi tekst", 1}, {"dwa", "Długi tekst", 2}, {"trzy", "Długi tekst", 3}, {"cztery", "Długi tekst", 4}, {"pięć", "Długi tekst", 5} }; JTable tabela = new JTable(data, kolumny); tabela.setPreferredScrollableViewportSize(new Dimension(500, 70)); tabela.setFillsViewportHeight(true); JScrollPane scroll = new JScrollPane(tabela); add(scroll); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame okno = new JFrame("Test tabeli"); okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); TabelaTest test = new TabelaTest(); test.setOpaque(true); okno.add(test, BorderLayout.WEST); okno.setSize(800,300); okno.setVisible(true); JLabel label = new JLabel(); label.setText("Jakiś tekst"); okno.add(label, BorderLayout.EAST); } }); } }
Pod tabelą mam wtedy wolne pole, które nie mogę wypełnić jakimś kolorem, rozmiar okna powinien pozostać taki jaki jest, czy jest w ogóle jakaś możliwość, żeby tabela się dopasowała do JPanelu?
Edit 1:
Niewielki postęp:
Próbuję użyć metody setBackground(Color), dla tabeli lecz wtedy kolorowana jest cała tabela z komórkami oraz to białe pole pod nią :/
Użytkownik Karol1987 edytował ten post 16 sierpień 2008, 00:13
Zainteresuj się TableCellRenderer i jego metodą getTableCellRendererComponent. Na wielu stronach są kody jak to używać, choćby tu:
To jest też niezłe: http://www.codeguru....hp/t-34478.html
Użytkownik Tomek92 edytował ten post 16 sierpień 2008, 12:19
Dzięki za rady, sprawdzę w wolnej chwili te kody.
Zainteresuj się TableCellRenderer i jego metodą getTableCellRendererComponent.
Tego już używałem do kolorowania tekstu w tabeli i jego wyśrodkowania, no nic jakoś popróbuję to kolorowanie, bo tylko ta biała część pod tabelą psuje wizerunek aplikacji. Jak coś to się jeszcze odezwę.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
import javax.swing.*; import java.awt.*; public class TabelaTest extends JPanel { private static final long serialVersionUID = 1L; public TabelaTest() { super(new GridLayout(1,0)); String[] kolumny = {"Kolumna1", "Kolumna2", "Kolumna3"}; Object[][] data = { {"jeden", "Długi tekst", 1}, {"dwa", "Długi tekst", 2}, {"trzy", "Długi tekst", 3}, {"cztery", "Długi tekst", 4}, {"pięć", "Długi tekst", 5} }; JTable tabela = new JTable(data, kolumny); tabela.setPreferredScrollableViewportSize(new Dimension(500, 70)); tabela.setFillsViewportHeight(true); JScrollPane scroll = new JScrollPane(tabela); add(scroll); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame okno = new JFrame("Test tabeli"); okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); TabelaTest test = new TabelaTest(); test.setOpaque(true); okno.add(test, BorderLayout.WEST); okno.setSize(800,300); okno.setVisible(true); JLabel label = new JLabel(); label.setText("Jakiś tekst"); okno.add(label, BorderLayout.EAST); } }); } }
Pod tabelą mam wtedy wolne pole, które nie mogę wypełnić jakimś kolorem, rozmiar okna powinien pozostać taki jaki jest, czy jest w ogóle jakaś możliwość, żeby tabela się dopasowała do JPanelu?
Edit 1:
Niewielki postęp:
Próbuję użyć metody setBackground(Color), dla tabeli lecz wtedy kolorowana jest cała tabela z komórkami oraz to białe pole pod nią :/
Użytkownik Karol1987 edytował ten post 16 sierpień 2008, 00:13
Zainteresuj się TableCellRenderer i jego metodą getTableCellRendererComponent. Na wielu stronach są kody jak to używać, choćby tu:
- lhttp://forums.sun.co...ssageID=4198826
llhttp://forums.sun.co...essageID=510762
llhttp://www.javaworld...928-jtable.html (myślę że najprostszy kod)
llhttp://www.devx.com/tips/Tip/17285l
To jest też niezłe: http://www.codeguru....hp/t-34478.html
Użytkownik Tomek92 edytował ten post 16 sierpień 2008, 12:19
Dzięki za rady, sprawdzę w wolnej chwili te kody.
Zainteresuj się TableCellRenderer i jego metodą getTableCellRendererComponent.
Tego już używałem do kolorowania tekstu w tabeli i jego wyśrodkowania, no nic jakoś popróbuję to kolorowanie, bo tylko ta biała część pod tabelą psuje wizerunek aplikacji. Jak coś to się jeszcze odezwę.