Hoj,
odpovedet nebude snadny, protoze se da tezko vyznat v tom co si poslal -
nicmene:
1) GBC funguje normalne, problem je pouze v tom, ze mas gulas v tom kodu
- zda se mi, ze bys obcas chtel nastavit gridy opet na nula, takhle ti
to musi vykreslovat nejake podivne kaskadovite usporadani - tj. gulas.
2) tezko rict proc ti nefunguje resize, nevim co jsou promenne hodnotaX
a hodnotaY, takze pokud ti to obrazek nezmensi, zda se mi, ze duvod bude
stejny jako v minulem bode - gulas. Posledni argument getScaledInstance
je popsany v javadocu a je to napr. Image.SCALE_FAST.
bonus) Nepouzivej podtrzitka v nazvech promennych. Nepojmenovavej
promenne s velkym pismenem na zacatku.
Good luck.
[EMAIL PROTECTED] wrote:
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
--
S pozdravem,
Tomas Zverina
Multimedia atelier s.r.o.
Na Dolinách 4
147 00 Praha 4
IČO: 25127071
tel.: 241 433 120
e-mail: [EMAIL PROTECTED]
http://www.m-atelier.cz/
Společnost Multimedia atelier s.r.o. je zapsána u rejstříkového soudu v
Praze, oddíl C, vložka 51961.