В настоящее время я пытаюсь создать программу свинга Java, используя Window Builder в Luna Eclipse, чтобы показать изображение студента для подтверждения личности (которое было изменено, потому что я не хочу попадать в неприятности).Если изображение соответствует человеку, наблюдатель нажимает кнопку «Подтвердить голосование».Я еще не реализовал функциональность, я просто работаю над визуальными эффектами.При запуске кода ниже, я хочу, чтобы изображение масштабировалось с размером окна.
Благодаря исследованиям я нашел способ показать изображение, и теперь мне нужно масштабировать его до размера панели.Если решения не существует, я могу сохранить размер на заданном значении, но я бы хотел, чтобы он был
public class PhotoView extends JDialog {
private final JPanel contentPanel = new JPanel();
public static void main(String[] args) {
PhotoView dialog = new
PhotoView();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
public PhotoView() {
setBounds(100, 100, 801, 851);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
ImageIcon image = new ImageIcon("src/icon.png");
JLabel label = new JLabel("", image, JLabel.CENTER);
label.setVerticalAlignment(SwingConstants.TOP);
contentPanel.add(label, BorderLayout.CENTER );
GroupLayout gl_contentPanel = new GroupLayout(contentPanel);
gl_contentPanel.setHorizontalGroup(
gl_contentPanel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPanel.createSequentialGroup()
.addComponent(label, GroupLayout.DEFAULT_SIZE, 434,
Short.MAX_VALUE)
.addContainerGap())
);
gl_contentPanel.setVerticalGroup(
gl_contentPanel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPanel.createSequentialGroup()
.addContainerGap()
.addComponent(label, GroupLayout.DEFAULT_SIZE, 217,
Short.MAX_VALUE).addContainerGap())
);
contentPanel.setLayout(gl_contentPanel);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("Confirm Vote");
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}