Kann mir jemand helfen? Ich versuche, eine JFrame
zu erstellen, wo ich die JScrollBar
anpassen und die Ansicht von oben nach unten der JLabel
mit einer ImageIcon
ändern könnte, einschließlich der anderen JLabel
, die eine MouseEvent
von JFileChooser
hat.Wie man JScrollBar auf JLabel mit ImageIcon in Java repariert?
Leider funktioniert mein Code nicht, wie ich es dachte. Irgendwelche Ideen, warum es das tut? Oder gibt es fehlende Codes, die ich beachten sollte? Mein einziges Ziel ist es, die JScrollBar
Arbeit sowohl ich JLabels
public class DocVieweR extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private int yPos = 0;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DocVieweR frame = new DocVieweR();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public DocVieweR() {
setTitle("DocVieweR");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(816, 705);
setLocationRelativeTo(null);
setResizable(false);
contentPane = new JPanel();
setContentPane(contentPane);
contentPane.setLayout(null);
JScrollBar scrollBar = new JScrollBar();
scrollBar.addAdjustmentListener(new AdjustmentListener() {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
yPos =+ e.getValue();
}
});
scrollBar.setBounds(793, 0, 17, 676);
contentPane.add(scrollBar);
JLabel lblPHOTO1x1 = new JLabel("SELECT IMAGE");
lblPHOTO1x1.setFont(new Font("Segoe UI", Font.BOLD, 16));
lblPHOTO1x1.setHorizontalAlignment(SwingConstants.CENTER);
lblPHOTO1x1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
JFileChooser chosenFILE = new JFileChooser();
chosenFILE.showOpenDialog(null);
File getFILE = chosenFILE.getSelectedFile();
ImageIcon pic = new ImageIcon(getFILE.getAbsolutePath());
lblPHOTO1x1.setIcon(pic);
}
});
lblPHOTO1x1.setBounds(585, 228, 129, 128);
contentPane.add(lblPHOTO1x1);
JLabel lblBIODATA = new JLabel("");
ImageIcon img = new ImageIcon("resources/BIODATA_96dpi.jpg");
lblBIODATA.setIcon(img);
lblBIODATA.setBounds(0, yPos, 793, 1122);
contentPane.add(lblBIODATA);
}
}
1) Können Sie den Code jetzt nicht testen, aber es in einer ersten Ansicht kann ich Sie mit dieser Zeile finden Sie unter ' contentPane.setLayout (null); 'und' setBounds (...) 'Methoden, das wird Ihnen viele Probleme bereiten, warum? Weil [Null-Layout ist böse] (http://www.fredosaurus.com/notes-java/GUI/layouts/nulllayout.html) und [verpönt] (https://stackoverflow.com/questions/6592468/why- ist-es-runzelte-auf-zu-benutzen-ein-null-Layout-in-swing) ... 2) * "Irgendwelche Ideen, warum es das macht?" * Warum es was macht? – Frakcool
Vielen Dank Sir Frakcool für die Antwort so schnell, Ihr Kommentar machte es so klar, das Problem zu lösen. –
Wenn Sie es gelöst haben, dann posten Sie eine Antwort, und bitte, rufen Sie mich nicht Sir, ich bin überhaupt nicht alt ... :) – Frakcool