Ak sa nemylim, tak GridBagConstraints sa pouziva v spojeni s |GridBagLayout| a vy tam mate pouzity GridLayout.

[EMAIL PROTECTED] said the following on 23. 12. 2006 16:59:
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


Odpovedet emailem