Ahojte, utrzky meho kodu
- frame mam nastaveny:
frame.setMinimumSize(new Dimension(640, 480));
frame.setPreferredSize(new Dimension(640, 480));
frame.setResizable(false);
frame.setLocation(100, 100);
- do framu dam panel a vytvorim odsazeni:JPanel panel = new JPanel(new BorderLayout());
JPanel horniOdsazeni = new JPanel();
horniOdsazeni.setPreferredSize(new Dimension(0, 15));
panel.add(horniOdsazeni, BorderLayout.PAGE_START);
JPanel dolniOdsazeni = new JPanel();
dolniOdsazeni.setPreferredSize(new Dimension(0, 30));
panel.add(dolniOdsazeni, BorderLayout.PAGE_END);
JPanel leveOdsazeni = new JPanel();
leveOdsazeni.setPreferredSize(new Dimension(50, 0));
panel.add(leveOdsazeni, BorderLayout.LINE_START);
JPanel praveOdsazeni = new JPanel();
praveOdsazeni.setPreferredSize(new Dimension(50, 0));
panel.add(praveOdsazeni, BorderLayout.LINE_END);
- a zbyva BorderLayout.CENTER a s tim je problem:JTable table = new JTable(10, 4);
table.setFillsViewportHeight(true);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane area = new JScrollPane(table);
area.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
panel.add(area, BorderLayout.CENTER);
- vsechny ostatni casti kodu jsou otestovane a funkcni, ale s timto mam problem... kdyz tam vlozim scroll pane bez jakehokoliv obsahu,JScrollPane area = new JScrollPane(); // tento kod dam misto puvodniho s tabulkou
funguje vse tak, jak chci... frame zustane 640x480... kdyz tam ale necham tu tabulku, zustane frame sice 640px siroky, ale zvysi se a to o mnoho... nevim, cim to muze byt a uz jsem zkousel vsechno... kdyz natvrdo zmenim vysku toho scroll pane, tak to funguje, ale to je spatne, protoze na jinem operacnim systemu to zase bude mit jinou velikost a na jine uprave tohotez systemu take, atd. ... zkousel jsem si i vypsat velikost te tabulky, resp. viewportu scroll paneSystem.out.println(area.getViewport().getViewSize());
a vratilo mi to java.awt.Dimension[width=530,height=160]
coz je divne, protoze to je opravdu mnohem vic... cim to muze byt? nevite nekdo, jak to spravit? (chtel bych, aby frame zustal tech 640x480... dekuji.