Ciao a tutti, ho un piccolo problema e per quanto mi sforzi non riesco a trovare una spiegazione/soluzione.
Sono riuscito a caricare delle immagini da un jar con l'oggetto Toolkit, il problema,penso, è quando richiamo l'oggetto ImageButton entra nel costruttore ma non riesce a recuperare le dimensioni delle immagini caricate.
qui sotto c'è la classe relativa alla costruzione del mio bottonecodice:protected void init() { setSize(300,200); addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent we) { System.exit(0); } }); Image[] imgp = new Image[4]; Container contentPane = getContentPane(); JPanel p = new JPanel(); for(int i=0; i<4; i++) { imgp[i] = Toolkit.getDefaultToolkit().createImage("it/praioz/image/babydonald0"+(i+1)+".gif"); } for(int i=0; i<4; i++) { System.out.print("imgp["+i+"] = " +imgp[i]); System.out.println(" imgp["+i+"].getWidth(this) = " +imgp[i].getWidth(this) +"imgp["+i+"].getHeight(this)= "+imgp[i].getHeight(this) ); } ImageButton imgButton = new ImageButton(imgp); Button button = new Button("pippo"); ModelloTabella modello = new ModelloTabella(); JTable tabella = new JTable(modello); JScrollPane scroll = new JScrollPane(tabella); p.add( imgButton ); p.add( button ); p.setOpaque(true); contentPane.add(p, "North"); contentPane.add(scroll, "Center"); pack(); doLayout(); }
un grazie a chiunque voglia aiutarmi!codice:class ImageButton extends Button implements MouseListener { Image[] img; int select = 1; int width = 0; int height = 0; int imgWidth, imgHeight; public ImageButton(Image[] image) { super(" "); img = new Image[4]; img = image; imgWidth = img[0].getWidth(this); imgHeight = img[0].getHeight(this); setSize(imgWidth, imgHeight); addMouseListener(this); } public Dimension getPreferredSize() { return new Dimension(imgWidth, imgHeight); } public Dimension getMinimumSize() { return new Dimension(imgWidth, imgHeight); } public void setBounds(int x, int y, int width, int height) { this.width = width; this.height = height; super.setBounds(x, y, this.width, this.height); } public void setSize(int width, int height) { this.width = width; this.height = height; super.setSize(this.width, this.height); } public void setEnabled(boolean enable) { if( enable ) select = 1; else select = 0; repaint(); super.setEnabled(enable); } public void paint(Graphics g) { g.drawImage(img[select], 0, 0, width, height, this); } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { if(select != 0) { select = 2; repaint(); } } public void mouseExited(MouseEvent e) { if(select != 0) { select = 1; repaint(); } } public void mousePressed(MouseEvent e) { if(select != 0) { select = 3; repaint(); } } public void mouseReleased(MouseEvent e) { if(select != 0) { select = 2; repaint(); } } }

Rispondi quotando

