Масштабирование изображения с помощью Java Swing - PullRequest
0 голосов
/ 26 сентября 2018

В настоящее время я пытаюсь создать программу свинга 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);
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...