Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2017, 13:54   #1
max29
Пользователь
 
Аватар для max29
 
Регистрация: 16.04.2016
Сообщений: 41
По умолчанию Изменение размера фрейма

Доброго времени суток форумчане, как установить размеры фрейма(окна) равным размерам "изображённой картинки" на ней?
т.е. что бы окно приобретало размер картинки? У меня получилось несколько иначе а именно картинку Растянуть под размер окна.
Вот код программы:
Код:
public class MyJPanel extends JPanel implements ActionListener {
 
    JButton button = new JButton("Next image"),
            button2 = new JButton("previous image" + i);
    JFrame frame = new JFrame();
    JPanel panel = new JPanel(),
            panel2 = new JPanel();
 
    public static int i = 0;
 
    public static void main(String[] args) {
        MyJPanel gui = new MyJPanel();
        gui.go();
    }
 
    class Inner implements ActionListener {
 
        @Override
        public void actionPerformed(ActionEvent e) {
            if (i > 0) {
                --i;
            }
            frame.repaint();
            button2.setText("previous image" + i);
        }
 
    }
 
    public void go() {
        panel.setBackground(Color.darkGray);
        panel2.setBackground(Color.darkGray);
        panel.add(button);
        panel2.add(button2);
 
        button.addActionListener(this);
        button2.addActionListener(new Inner());
        frame.getContentPane().add(panel, BorderLayout.PAGE_END);
        frame.getContentPane().add(panel2, BorderLayout.NORTH);
        frame.getContentPane().add(this);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setSize(800, 600);//вот тут как можно написать чтобы окно приобретало размер картинки? Или чтобы картина приобретала размер окна(сжималась) не растягивалась по всему окну?
        frame.setVisible(true);
    }
 
    @Override
    public void paintComponent(Graphics g) {
        g.setColor(Color.WHITE);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());
        ArrayList<Image> images = new ArrayList<>();
        File[] files = new File("d:\\Оформление рабочего стола").listFiles();
        for (File f : files) {
            System.out.println(f.canRead() + " " + f.renameTo(f));
            images.add(new ImageIcon(f.getAbsolutePath()).getImage());
        }
        if (i < images.size()) {
            g.drawImage(images.get(i), 0, 0, getWidth(), getHeight(), this);//вот тут и подгоняется картинка под размер окна.
        }
 
        System.out.print("hello world");
 
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        i++;
        this.repaint();
        button.setText("Next image" + i);
    }
}
max29 вне форума Ответить с цитированием
Старый 10.12.2017, 14:01   #2
max29
Пользователь
 
Аватар для max29
 
Регистрация: 16.04.2016
Сообщений: 41
По умолчанию

Как в средстве просмотра фотографий Windows.
max29 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размера изображения ramsesjol БД в Delphi 3 12.06.2013 14:36
изменение высоты фрейма MiK_on JavaScript, Ajax 2 11.09.2010 21:58
изменение размера изображения voron.kz Общие вопросы Delphi 2 06.09.2010 08:15
Изменение размера TImage alexprey Общие вопросы Delphi 4 23.06.2010 21:17
Изменение размера картинки Борис Низов PHP 6 09.12.2007 16:26