Ich habe einen GridBagConstraints gbcImage
und eine JLabel
, die wie folgt initialisiert:Warum zeigt das JPanel nicht den ImageIcon an?
gbcImage.gridx = 1; // column 0
gbcImage.gridy = 2; // row 2
gbcImage.ipady = 100;
gbcImage.ipadx = 100;
JLabel label = new JLabel("", null, JLabel.CENTER);
label.setOpaque(true);
label.setBackground(Color.WHITE);
panel.add(label, gbcImage);
Wo Platte an einem JFrame
hinzugefügt wird.
So implementiert ich ein MouseListener
auf dem Etikett:
public void mouseClicked(MouseEvent e) {
JFileChooser jfc = new JFileChooser();
int iRet = jfc.showOpenDialog(panel);
if (iRet == jfc.APPROVE_OPTION)
{
File file = jfc.getSelectedFile();
try
{
BufferedImage bi = ImageIO.read(file);
image = new ImageIcon(bi);
JLabel label = new JLabel("", image, JLabel.CENTER);
panel.add(label, gbcImage);
}
catch (IOException e1)
{
e1.printStackTrace();
}
}
}
Aber es hat nicht funktioniert. Das Bild wird zur Laufzeit nicht im Panel angezeigt.
Was fehlt mir?
haben Sie den Layoutmanager für Ihre JPanel angegeben? – ACV
1) Für bessere Hilfe, früher, ein [MCVE] oder [kurze, unabhängige, korrekte Beispiel] (http://www.sscce.org/). 2) Eine Möglichkeit, Bilder für ein Beispiel zu erhalten, besteht darin, eine direkte Verbindung zu Bildern herzustellen, die in [diesem Q & A] (http://stackoverflow.com/q/19209650/418556) zu sehen sind. –