IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> mdi swing, java, IntelliJ IDEA
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


здравствуйте.

при открытии изображения каждый раз создаю новое окно, а как сделать чтобы оно открывалось в дочерних окнах?
Код


import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.applet.*;
import javax.swing.*;

public class imageV {
    public static void main(String[] args) {
        FrameWindow frame;
        frame =  new FrameWindow("Image_Viewer");
        frame.setVisible(true);
    }
}

class FrameWindow extends Frame
        implements ActionListener, WindowListener,
        ComponentListener
{
    MenuBar mb;
    Menu mFile;
    MenuItem miOpen;
    MenuItem miExit;

    String szCurrentFilename = "";

    ScrollPane sp;
    Image img;
    imgViewer iv;
    MediaTracker mt;
    //для ожидания завершения процесса загрузки выбранного изображения



    public FrameWindow(String szTitle)
    {
        super(szTitle);
        setSize(400, 300);

        mb = new MenuBar();
        mFile = new Menu("File");

        miOpen = new MenuItem("Open...");
        mFile.add(miOpen);

        mFile.add("-");

        miExit = new MenuItem("Exit");
        mFile.add(miExit);

        mb.add(mFile);

        miOpen.addActionListener(this);
        miExit.addActionListener(this);

        setMenuBar(mb);

        this.addWindowListener(this);
        this.addComponentListener(this);      // для отслеживания размеров окна
    }

    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource().equals(miOpen))
        {
            FileOpen();
        }

        else if(e.getSource().equals(miExit))
        {
            setVisible(false);
            System.exit(0);
        }
    }

    public void componentResized(ComponentEvent e)
    {
        if(sp != null)
        {
            doLayout();
            sp.doLayout();
            sp.repaint();
            iv.repaint();
        }
    }

    public void componentShown(ComponentEvent e)
    {
        if(sp != null)
        {
            doLayout();
            sp.doLayout();
            sp.repaint();
            iv.repaint();
        }
    }
      //необходимы для полноты реализации соответствующих интерфейсов
    public void componentMoved(ComponentEvent e) {}
    public void componentHidden(ComponentEvent e) {}


    public void windowClosing(WindowEvent e)
    {
        setVisible(false);
        System.exit(0);
    }

    public void windowOpened(WindowEvent e) {}
    public void windowClosed(WindowEvent e) {}
    public void windowIconified(WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {}
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}


    void FileOpen()
    {
        FileDialog fdlg;
        fdlg = new FileDialog(this, "Open file",
                FileDialog.LOAD);

        fdlg.setFile("*.gif;*.jpg");

        fdlg.show();

        szCurrentFilename = fdlg.getDirectory() +
                fdlg.getFile();

        setTitle(szCurrentFilename);

        img = Toolkit.getDefaultToolkit().getImage(
                szCurrentFilename);

        mt = new MediaTracker(this);
        mt.addImage(img, 0);
        try
        {
            mt.waitForAll();
        }
        catch (InterruptedException ex) { }

        if(sp != null)          // проверяем перед отображением
        {
            this.remove(sp);
        }

        sp = new ScrollPane();   // удаляем изображение, открытое ранее
        sp.setSize(getSize());

        setLayout(new BorderLayout());
        add("Center", sp);         //5 частей

        iv = new imgViewer(img,
                new Dimension(img.getWidth(this),
                        img.getHeight(this)));

        sp.add(iv);
        sp.doLayout();
    }
}

class imgViewer extends Panel
{
    Image im;
    Dimension dimMinSize;


    public imgViewer(Image img, Dimension dim)
    {
        im = img;    //ссылка на изображение
        dimMinSize = dim;
    }


    public void paint(Graphics g)
    {
        g.drawImage(im, 0, 0, this);
    }


    public Dimension getPreferredSize()
    {
        return dimMinSize;
    }


    public Dimension getMinimumSize()
    {
        return dimMinSize;
    }


    public Dimension preferredSize()
    {
        return dimMinSize;
    }


    public Dimension minimumSize()
    {
        return dimMinSize;
    }
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 1:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name