mdi swing, java, IntelliJ IDEA |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
mdi swing, java, IntelliJ IDEA |
*оля* |
24.06.2012 15:57
Сообщение
#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; } } |
Текстовая версия | 29.04.2024 6:39 |