Hoj,
mohl by někdo poradit. Mám následující problémy.
v metodě action_performed vykresluju do JPanelu butony potaženy Imagem.
Problémy jsou dva
1 - do GridLayout(JPanel jpa) se mi to skládá opačně než potřebuju, tj. obrázek
projedu po sloupcích SubImage ,ale když to skládám do Layoutu tak se to skládá
napřed do řádků ...
2 - potřebuju změnit rozměry SubImage tj. původní obrázek má třeba rozměry
2000*1000 a já to potřebuju překonvertovat na 800*600
přikládám metodu :
BufferedImage img = null;
try {
img = ImageIO.read(new File("LV.jpg"));
} catch (IOException e) {
}
int Width = img.getWidth()/4;
int Height = img.getHeight()/3;
JPanel jpa = new JPanel(new GridLayout(4,3));
jpa.setSize(800,600);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx =0;
gbc.gridy =0;
for (int i = 0; i < 4; i++) {
gbc.gridx++;
for (int j = 0; j < 3; j++) {
gbc.gridy++;
int pozicex =Width*i;
int pozicey =Height*j;
BufferedImage im =
img.getSubimage(pozicex,pozicey,Width,Height);
// ImageIcon f1 = new ImageIcon(im);
<----
int rozmerX_Frame = jpa.getWidth()/hodnotaX;
int rozmetY_Frame = jpa.getHeight()/hodnotaY;
Image f1 = im.getScaledInstance(rozmerX_Frame,rozmetY_Frame,1);
ImageIcon f2 = new ImageIcon(f1);
----> pokud tuto čast odstraním ,funguje ale do buttonu se uloží neresizované
ImageIcon
JButton btn = new JButton(f2);
jpa.add(btn,gbc);
}
}
add(jpa);
setVisible(true);
problém 1 jsem se pokoušel řešit přes GridBagConstraints ale nefunguje .((
u generování menších rozměrů jsem nějak nepochopil volby
getScaledInstance(rozmerX_Frame,rozmetY_Frame,1); ten poslední int má určovat
nějakou metodu převodu ale to teda nevím .) co bych měl zvolit
Popřípadě kdyby někdo věděl jiný(lepší řešení jak to udělat).......
Zatím Petr Roubal