tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
213
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    xX_Legolas_Xx xX_Legolas_Xx ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    28
    Hallo!
    Ich bin gerade dabei ein Java Applet zu programmieren. Doch mir stellt sich ein Problem.
    Geplant ist es, aus einem Bild einen Button, möglichst JButton zu machen.
    Durch langes herumsuchen hab ichs immerhin schon mal hinbekommen, ein Bild im png oder jpg Format einzulesen und g.drawImage() auch auf die Leinwand zu bekommen.
    Wenn ich jetzt allerdings das Image in ein ImageIcon umwandele und das als Button icon über button.setIcon einstelle sehe ich nichts, wenn ich anschließen ein add(button) ausführe.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    public class test extends Applet {
            public JButton b;
            public Icon i;
            public Image img;
     
            public void init(){
                img = getImage(getCodeBase(),"testbutton.png");
                i = new ImageIcon(img);
                b = new JButton();
                b.setIcon(i);
            }
            public void paint(Graphics g){
                //g.drawImage(img,3,2,this); //<-- würde Funktionieren
                add(b);  //<-- leerer Bildschirm
            }
    }
     

  2. #2
    SE Tutorials.de Gastzugang
    Nun ... lass es mich mal sehr einfach ausdrücken : ein
    Code java:
    hat auch in der paint()-Methode überhaupt nichts verloren. Wenn dann gehört das add(JButton) in init() oder start() ... aber doch nicht in paint().
     

  3. #3
    xX_Legolas_Xx xX_Legolas_Xx ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    28
    Also ich habs jetzt mal so abgeändert.. aber das bringt irgendwie auch nix.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
        public class First extends Applet {
            public JButton b;
            public Icon i;
            public Image img;
     
            public void init(){
            img = getImage(getCodeBase(),"testbutton.png");
            i = new ImageIcon(img);
            b = new JButton();
            b.setIcon(i);
        }
        public void start(){
            add(b);
        }
            public void paint(Graphics g){
         }
    }
     

  4. #4
    SE Tutorials.de Gastzugang
    Ok .. nächste Frage : siehst du überhaupt nichts oder nur kein Bild ?
    Setze zum Testen einfach ein ein Label für den Button.
     

  5. #5
    xX_Legolas_Xx xX_Legolas_Xx ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    28
    Also, wenn ich ein Label erstelle und in public void start(){ add(label);}
    mache, dann erscheint der Text.
     

  6. #6
    xX_Legolas_Xx xX_Legolas_Xx ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    28
    Also ich hab mal zwei Dinge versucht:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    public class First extends Applet {
            public JButton b;
            public Icon i;
            public Image img;
            public Label l;
            public void init(){
            l = new Label("test");
            img = getImage(getCodeBase(),"testbutton.png");
            i = new ImageIcon(img);
            b = new JButton("hi");
            //b.setIcon(i);
        }
        public void start(){
            add(b); //<-- erscheint
            add(l);  //<--erscheint nicht
        }
            public void paint(Graphics g){
         }
    }
     

  7. #7
    SE Tutorials.de Gastzugang
    Dann ist es ganz klar :
    img ist null oder nocht nicht vollständig geladen.
    Ich finde es eh sehr umständlich das du das png übers Netz nachladen willst. Packs doch mit dem Applet in ein JAR und lad es über this.getClass().getResource().
     

  8. #8
    xX_Legolas_Xx xX_Legolas_Xx ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    28
    Also ich bin halt in dem Applet Bereich und Grafik noch unerfahren.. hab mich bisher eher mit Algorithmen beschäftigt. Ganz gut wär auch, wenn ich wüsste, wie ich den Button an ne bestimmte Stelle bringen kann (int höhe, int tiefe), oder die Größe regulieren (int breite, int höhe) sowas wär cool.
    Könntest du mir vielleicht ein Beispielcode schreiben? Das Bild ist im Gleichen Ordner wie das Programm.

    Aber schon mal danke für die Antwort, das wird mich bestimmt weiterbringen.
     

  9. #9
    SE Tutorials.de Gastzugang
    Natürlich bin ich da so nett und schreib dir das mal als Pseudo-Code.
    Wichtige Vorraussetzung : das Jar muss richtig zusammengepackt werden. Nähere Infos über die verwendung des Tools jar bekommst du hier : http://download.oracle.com/javase/7/...jar/index.html
    Schau dir am besten das Tutorial an. Dort wird alles genau erklärt. Bei Fragen bitte konkrete Probleme beschrieben.

    Wie du eine Component auf einem Container platzierst findest du in der API-Doc *Link in meiner Signatur*.
    Wie genau das geht kannst du hier erfahren : http://download.oracle.com/javase/7/...ing/index.html
    Auch hier wieder der Rat : arbeite das Tutorial durch.

    So , und wie man nun ein Bild aus einem Jar des Applets läd schreib ich mal schnell als Pseudo-Code
    Code java:
    1
    
    BufferedImage bi=ImageIO.read(this.getClass().getResourceAsStream("icon.png"))
    Dafür brauchst du die Pakete
    javax.imageio.*
    java.awt.image.*

    Ich bitte dich nun zu deinem eigenen Wohl und um die Flut von Fragen zu minimieren erst einmal die beschriebenen Tutorials durchzuarbeiten und nur bei konkreten Problemen diese zu posten. Auch benutze bitte die Suchfunktion und Google für weitere Infos.

    Ich hoffe ich konnte dich dazu animieren erstmal selbst zu versuchen es hinzubekommen bevor ich dir eine vollständige Lösung poste.
     

  10. #10
    Maddin Maddin ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    71
    Zitat Zitat von xX_Legolas_Xx Beitrag anzeigen
    Ganz gut wär auch, wenn ich wüsste, wie ich den Button an ne bestimmte Stelle bringen kann (int höhe, int tiefe), oder die Größe regulieren (int breite, int höhe) sowas wär cool.
    Das geht auf verschiedene Arten.
    Schau dir dazu am besten mal folgendes an: Using Layout Managers
     

Ähnliche Themen

  1. JLabel und JButton
    Von Tithilion im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 10.02.10, 16:32
  2. CButton::SetIcon
    Von Quick_Mik im Forum VisualStudio & MFC
    Antworten: 19
    Letzter Beitrag: 28.01.10, 15:15
  3. Jbutton Tutorial
    Von DaDonDerDritte im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 13.10.09, 12:27
  4. DB-GUI und JButton
    Von airliner im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 13
    Letzter Beitrag: 25.09.08, 08:12
  5. JLabel und setIcon Frage ?
    Von vrcat im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 25.06.05, 12:06