java swing Größe ImageIcon nach jLabel
ich bin ein neuer Programmierer hier und ich habe etwas zu Fragen, ich habe durchsuchen ein Bild in meine GUI (und den Pfad im Textfeld auch), die wird auf einem Label, aber das label dimension ist nur 100,100, während das Bild ist viel größer, also, wenn ich open/display in das Etikett abgeschnitten bekommen , gibt es trotzdem machen es die auto-resize-dem Etikett-Größe? unten ist meine Logik-code auf die Schaltfläche "durchsuchen" und öffnen Dialogfenster
bitte alle mir einer sagen, wo ich falsch bin..
public class ImagePath extends javax.swing.JFrame {
private JPanel contentPane;
JLabel jLabel1;
String s2;
File targetFile;
BufferedImage targetImg;
public ImagePath() {
initComponents();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser jFileChooser1 = new JFileChooser();
int state = jFileChooser1.showOpenDialog(new JFrame());
jTextField1.setText("");
if (state == JFileChooser.APPROVE_OPTION) {
JOptionPane.showMessageDialog(new JFrame(), "hii");
File file = jFileChooser1.getSelectedFile();
s2 = file.toString();
jTextField1.setText(s2);
jLabel1 = new JLabel();
jLabel1.setName(s2);
jLabel1.setLocation(50, 50);
jLabel1.setSize(300, 300);
add(jLabel1);
BufferedImage bi1;
try {
bi1 = ImageIO.read(file);
ImageIcon icon1 = new ImageIcon(bi1);
jLabel1.setIcon(icon1);
Image img = icon1.getImage();
ImageIcon icon = new ImageIcon(file.getPath());
Image scaleImage = icon.getImage().getScaledInstance(28, 28, Image.SCALE_DEFAULT);
repaint();
pack();
} catch (Exception e) {
System.out.println(e);
}
} else if (state == JFileChooser.CANCEL_OPTION) {
JOptionPane.showMessageDialog(new JFrame(), "Canceled");
}
}
}
Bitte poste deinen gesamten code, einschließlich der von NetBeans generierte
initComponents
Methode. Es ist da, man muss Sie nur zu erweitern, die zusammengebrochen "Generierter Code" - Ding.
InformationsquelleAutor Rohit | 2013-08-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sei denn, Sie wirklich wollen, eine böse Kopfschmerzen, ich würde vorschlagen, nutzen Sie die layout-management-system.
Anstatt zu versuchen, um die Größe und Lage der Komponenten, lassen Sie Sie entscheiden, wie Sie wan-zu-werden angezeigt, wenn möglich.
Während ich persönlich nutze Netbeans Formular-designer, ich möchte Sie ermutigen, sich die Zeit zu nehmen, um zu lernen, wie zu build Ihre UI ' s von hand, wird es geben eine größere apprication für das, was den Formular-Designer tun können, sowie Ideen, Sie können Mitarbeiter, um advanced UIs - IMHO
Habe ich
WrapLayout
von Rob Camick (wer verbirgt sich über den Ort), weil, um ehrlich zu sein, keiner von den anderen layout Managern gab mir der Effekt, den ich wollte.Ich auch den text des Labels mit dem Pfad des Bildes
Werfen Sie einen Blick auf Mit layout-Managern und A Visual Guide to Layout Managers
Werfen Sie einen Blick auf
WrapLayout
Aktualisiert mit text-Felder
Wenn Sie möchten, ordnen Sie ein text-Feld mit dem Bild, dann schlage ich vor, Sie fügen Sie den label-und text-Feld zu einem
JPanel
(mit so etwas wie einemBorderLayout
) und dann fügen Sie, dass Ihre Bild-Bereich...Ist, und den aktualisierten
ActionListener
...Okay, welchen Teil haben Sie Probleme mit?
InformationsquelleAutor MadProgrammer
Sollten Sie schneiden Sie den Aufruf zu
label.setSize
. Sie sollten auch alle Ihre Komponenten im Formular-designer statt Sie zu produzieren, wenn Sie auf die Schaltfläche klicken. Vielleicht könnten Sie auch hinzufügen, ein layout-manager in den Handel? Dies wird wirklich bedeuten, eine Revolte gegen NetBeans.Dank jeder meinen code jetzt bekommen correc und workingted
InformationsquelleAutor tbodt