In questo modo non penso ti funzionerà mai...Originariamente inviato da Cracker1992
ecco il codice:
mia classe:
wiew:codice:public class disegnare extends javax.swing.JLabel{ Graphics g = new Graphics(){[...]} public void Disegna(){ g.drawline(1,2,3,4); g.drawLine(5,6,7,8); } public void setIcon(Icon icon){ super.setIcon(icon); } }
codice:jlabel.setIcon(z.Disegna());
Poi..Disegna() non restituisce nulla..come può funzionare?
Se vuoi solamente disegnarci su, allora ti basta fare così
Diversa cosa è se vuoi caricare una ImageIcon e settarla sulla label..codice:import java.awt.*; import java.awt.event.*; import javax.swing.*; class MyLabel extends JLabel { public void paintComponent(Graphics g) { super.paintComponent(g); g.drawString("Html.it",10,10); } } class TestLabel extends JFrame { MyLabel myLabel; TestLabel() { myLabel = new MyLabel(); add(myLabel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void makeGUI() { TestLabel tl = new TestLabel(); tl.setSize(50,50); tl.setVisible(true); } public static void main(String[] args) { try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { makeGUI(); } }); } catch(Exception e) {} } }
Puoi disegnare anche su un JPanel comunque.
Ho evitato di soffermarmi sul tuo codice..poichè vi sono degli errori non da poco. Graphics ad esempio non può essere istanziabile in quel modo.

Rispondi quotando