Wie ein Bild in einem Rahmen?
Ich bin codieren, gui und ich wollte embedde einige Bilder, aber vor der Einbettung in meinem main Programm habe ich geschrieben, dass code, um es zu testen:
public class guikopie extends javax.swing.JFrame{
public guikopie() {
a = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
a.setIcon(new javax.swing.ImageIcon("C:\\Users\\Public\\Pictures\\Sample Pictures\\Tulpen.jpg"));
add(a);//here i add it to the jlabel
pack();
}
public static void main(String args[]){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new guikopie().setVisible(true);
}
});
}
private javax.swing.JLabel a;
}
Meine Frage ist: Warum funktioniert dieser code nicht, zeigt das Bild?
- es funktionierte auf meinem computer. überprüfen Sie den Pfad zu Ihrem Bild bitte.
- welchen Weg hast du?
- "src/icon.png - " es war ein Bild in meinem java-Quell-Ordner.
- btw gibt es eine Methode, um die Größe des Bildes?
- bitte lernen Sie die java Namenskonventionen halten
- "gibt es eine Methode, um die Größe des Bildes?" nehmen einen pick stackoverflow.com/questions/11959758/... oder stackoverflow.com/questions/12876615/... oder stackoverflow.com/questions/11911610/...
- Angesichts der Art, wie das Bild verwendet wird, wird es wahrscheinlich zu einem embedded-resource mit der Zeit die app. bereitgestellt ist. An diesem Punkt, mit einem
String
zuImageIcon
wird nicht funktionieren. Sehen Sie die tag-Wiki für embedded-Ressource für das, was funktioniert. - Bitte haben Sie einen Blick auf dieses Antwort für mehr info und das Antwort für die Klarstellung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, die Leute hassen mich für das zu wiederholen :P:
Guikopie
Auch je nachdem, was der hintergrund ist seiend verwendet für ich.e, wenn Ihr ein logo Hinzugefügt werden, um eine bestimmte Position auf der
JPanel
dann mit einemJLabel
ist in Ordnung, jedoch, wenn es als hintergrund ist es nicht; weil es bewegt, um so mehr Komponenten Hinzugefügt werden, so sollten wir nicht hinzufügen, den hintergrund einer Komponente eher malen wir den hintergrund einer Komponente.Als für Ihre Frage:
dein code funktioniert perfekt für mich, damit die Lage des Bildes muss falsch sein.
Habe ich ein kurzes Beispiel zeigen, wie Sie eine
Image
zuJPanel
hintergrund und fügen SieJPanel
zuJFrame
enthält es auch KlasseImgUtils
für die Größenänderung Bild:Alternativ möchten Sie vielleicht, um die Größe mit Image#getScaledInstance(int width,int height,int hints), aber das hat seine Tücken, das Haupt-problem ist:
JFrame
Sie nicht verlängern eine andere Klasse, die Sie können EIGENTLICH müssenÜberprüfen Sie diesen code. Ihr Weg kann falsch sein.