Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GUI в Applet 
:(
    Опции темы
malah
Дата 1.4.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 28.10.2006

Репутация: нет
Всего: нет



Всем доброго времени суток!
Вот такой у меня вопрос... Нужно написать HTML редактор... Нашел статью, начал делать, а теперь возник вопрос, как GUI приложение сделать Applet - ом???
PM MAIL   Вверх
batigoal
Дата 2.4.2007, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Цитата(malah @  1.4.2007,  17:01 Найти цитируемый пост)
Нашел статью, начал делать, а теперь возник вопрос, как GUI приложение сделать Applet - ом??? 

Очень просто - поместить его главную панель на JApplet.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
malah
Дата 2.4.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 28.10.2006

Репутация: нет
Всего: нет



А можно кусочек кода....
Вот так выглядит мой класс ProcCore
Код


package htmlprocessor;


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

import javax.swing.*;
import javax.swing.text.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.text.html.*;


public class ProcCore extends JFrame {
    
    /** Creates a new instance of ProcCore */
    public static final String APP_NAME = "HTML Редактор";
    protected JTextPane m_editor;
    protected StyleSheet m_context;
    protected HTMLDocument m_doc;
    protected HTMLEditorKit m_kit;
    protected SimpleFilter m_HTMLFilter;
    protected JToolBar m_toolBar;
    protected JFileChooser m_chooser;
    protected File m_currentFile;
    protected boolean m_textChanged = false;
    
    public ProcCore() {
        // задание заголовка окна и его размкра
        super(APP_NAME);
        setSize(650, 400);
        
        m_editor = new JTextPane();
        m_kit = new HTMLEditorKit();
        m_editor.setEditorKit(m_kit);
        
        JScrollPane ps = new JScrollPane(m_editor);
        getContentPane().add(ps, BorderLayout.CENTER);
        
        JMenuBar menuBar = createMenuBar();
        setJMenuBar(menuBar);
        
        m_chooser = new JFileChooser();
        m_HTMLFilter = new SimpleFilter("html", "HTML Document");
        m_chooser.setFileFilter(m_HTMLFilter);
        try{
            File dir = (new File(".")).getCanonicalFile();
            m_chooser.setCurrentDirectory(dir);
        }
        catch (IOException ex) {}
        
        newDocument();
        
        WindowListener wndCloser = new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                if (!promptToSave())
                    return;
                System.exit(0);
            }
            public void windowActivated(WindowEvent e){
                m_editor.requestFocus();
            }
        };
        addWindowListener(wndCloser);
    }
    
    protected JMenuBar createMenuBar(){
        
        JMenuBar menuBar = new JMenuBar();
        
        JMenu mFile = new JMenu("Файл");
        mFile.setMnemonic('f');
        
        ImageIcon iconNew = new ImageIcon("New16.gif");
        Action actionNew = new AbstractAction("Новый", iconNew){
            public void actionPerformed(ActionEvent e){
                if (!promptToSave())
                    return;
                newDocument();
            }
        };
        JMenuItem itemNew = new JMenuItem(actionNew);
        itemNew.setMnemonic('n');
        itemNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
        mFile.add(itemNew);
        
        ImageIcon iconOpen = new ImageIcon("Open16.gif");
        Action actionOpen = new AbstractAction("Открыть", iconOpen){
            public void actionPerformed(ActionEvent e){
                if (!promptToSave())
                    return;
                openDocument();
            }
        };
        JMenuItem itemOpen = new JMenuItem(actionOpen);
        itemOpen.setMnemonic('o');
        itemOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
        mFile.add(itemOpen);
        
        ImageIcon iconSave = new ImageIcon("Save16.gif");
        Action actionSave = new AbstractAction("Сохранить", iconSave){
            public void actionPerformed(ActionEvent e){
                saveFile(false);
            }
        };
        
        JMenuItem itemSave = new JMenuItem(actionSave);
        itemSave.setMnemonic('s');
        itemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
        mFile.add(itemSave);
        
        ImageIcon iconSaveAs = new ImageIcon("SA.gif");
        Action actionSaveAs = new AbstractAction("Сохранить как", iconSaveAs){
            public void actionPerformed(ActionEvent e){
                saveFile(true);
            }
        };
        JMenuItem itemSaveAs = new JMenuItem(actionSaveAs);
        itemSaveAs.setMnemonic('a');
        itemSaveAs.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
        mFile.add(itemSaveAs);
        
        mFile.addSeparator();
        
        
        
        Action actionExit = new AbstractAction("Выход"){
            public void actionPerformed(ActionEvent e){
                System.exit(0);
            }
        };
        JMenuItem itemExit = new JMenuItem(actionExit);
        itemExit = mFile.add(actionExit);
        itemExit.setMnemonic('x');
        menuBar.add(mFile);
        
       /* m_toolBar = new JToolBar();
        
        JButton bNew = new SmallButton(actionNew, "Новый");
        m_toolBar.add(bNew);
        
        JButton bOpen = new SmallButton(actionOpen, "Открыть");
        m_toolBar.add(bOpen);
        
        JButton bSave = new SmallButton(actionSave, "Сохранить");
        m_toolBar.add(bSave);
        
        JButton bSaveAs = new SmallButton(actionSaveAs, "Сохранить как");
        m_toolBar.add(bSaveAs);
        
        getContentPane().add(m_toolBar, BorderLayout.NORTH);*/
        
              
        return menuBar;
        
    }
    
    protected String getDocumentName(){
        return m_currentFile == null ? "Untitled" :
            m_currentFile.getName();
    }
    
    protected void newDocument() {
        m_doc = (HTMLDocument)m_kit.createDefaultDocument();
        m_context = m_doc.getStyleSheet();
        
        m_editor.setDocument(m_doc);
        m_currentFile = null;
        setTitle(APP_NAME +" ["+getDocumentName()+"]");
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                m_editor.scrollRectToVisible(new Rectangle(0, 0, 1, 1));
                m_doc.addDocumentListener(new UpdateListener());
                m_textChanged = false;
            }
        });
    }
    
    protected void openDocument() {
        if (m_chooser.showOpenDialog(ProcCore.this) != JFileChooser.APPROVE_OPTION)
            return;
        File f = m_chooser.getSelectedFile();
        if (f == null || !f.isFile())
            return;
        m_currentFile = f;
        setTitle(APP_NAME+" ["+getDocumentName()+"]");
        ProcCore.this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        try {
            InputStream in = new FileInputStream(m_currentFile);
            m_doc = (HTMLDocument)m_kit.createDefaultDocument();
            m_kit.read(in, m_doc, 0);
            m_context = m_doc.getStyleSheet();
            m_editor.setDocument(m_doc);
            in.close();
        }
        catch (Exception ex) {
            showError(ex, "Ошибка чтения файла "+ m_currentFile);
        }
        ProcCore.this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                m_editor.setCaretPosition(1);
                m_editor.scrollRectToVisible(new Rectangle(0, 0, 1, 1));
                m_doc.addDocumentListener(new UpdateListener());
                m_textChanged = false;
            }
        });                
    }
    
    protected boolean saveFile(boolean saveAs) {
        if (!saveAs && !m_textChanged)
            return true;
        if (saveAs || m_currentFile == null) {
            if (m_chooser.showSaveDialog(ProcCore.this) != JFileChooser.APPROVE_OPTION)
                return false;
            File f = m_chooser.getSelectedFile();
            if (f == null)
                return false;
            m_currentFile = f;
            setTitle(APP_NAME + " [" + getDocumentName() + "]");
        }
        ProcCore.this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        try {
            OutputStream out = new FileOutputStream(m_currentFile);
            m_kit.write(out, m_doc, 0, m_doc.getLength());
            out.close();
            m_textChanged = false;
        }
        catch (Exception ex) {
            showError(ex, "Ошибка записи в файл " + m_currentFile);          
        }
        ProcCore.this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        return true;
    }
    
    protected boolean promptToSave() {
        if (!m_textChanged)
            return true;
        int result = JOptionPane.showConfirmDialog(this, APP_NAME,
                                                   "Сохранить изменения в "+getDocumentName()+"?",
                                                   JOptionPane.YES_NO_CANCEL_OPTION,
                                                   JOptionPane.INFORMATION_MESSAGE);
        switch (result) {
            case JOptionPane.YES_OPTION:
                if (!saveFile(false))
                    return false;
                return true;
            case JOptionPane.NO_OPTION:
                return true;
            case JOptionPane.CANCEL_OPTION:
                return false;
        }
        return true;
    }
    
    public void showError(Exception ex, String message) {
        ex.printStackTrace();
        JOptionPane.showMessageDialog(this, message, APP_NAME, JOptionPane.WARNING_MESSAGE);
    }
    
    public static void main(String[] args) {
        // TODO code application logic here
        JFrame.setDefaultLookAndFeelDecorated(true);
        JDialog.setDefaultLookAndFeelDecorated(true);
        
        ProcCore frame = new ProcCore();
        frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        frame.setVisible(true);
        }   
       
    
    class SmallButton extends JButton implements MouseListener {
    protected Border m_raised = new SoftBevelBorder(BevelBorder.RAISED);
    protected Border m_lowered = new SoftBevelBorder(BevelBorder.LOWERED);
    protected Border m_inactive = new EmptyBorder(3, 3, 3, 3);
    protected Border m_border = m_inactive;
    protected Insets m_ins = new Insets(4,4,4,4);

    public SmallButton(Action act, String tip) {
        super((Icon)act.getValue(Action.SMALL_ICON));
        setBorder(m_inactive);
        setMargin(m_ins);
        setToolTipText(tip);
        setRequestFocusEnabled(false);
        addActionListener(act);
        addMouseListener(this);
    }

    public float getAlignmentY() {
        return 0.5f;
    }

    // Overridden for 1.4 bug fix
    public Border getBorder() {
        return m_border;
    }

    // Overridden for 1.4 bug fix
    public Insets getInsets() {
        return m_ins;
    }

    public void mousePressed(MouseEvent e) {
        m_border = m_lowered;
        setBorder(m_lowered);
    }

    public void mouseReleased(MouseEvent e) {
        m_border = m_inactive;
        setBorder(m_inactive);
    }

    public void mouseClicked(MouseEvent e) {}

    public void mouseEntered(MouseEvent e) {
        m_border = m_raised;
        setBorder(m_raised);
    }

    public void mouseExited(MouseEvent e) {
        m_border = m_inactive;
        setBorder(m_inactive);
    }
}    


PM MAIL   Вверх
batigoal
Дата 3.4.2007, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



1. 
Код

public class ProcCore extends JApplet

2. Убрать вызовы getContentPane()
3. Код из конструктора перенести в метод init().
4. Убрать main.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.