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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пролема отображения апплета в IE8 
:(
    Опции темы
Cross
Дата 23.4.2009, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


информатик-аналитик
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 2.6.2006
Где: Москва

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



Здравствуйте! 
У меня есть апплет, рисующий график функции. И есть HTML-страничка, созданная с помощью вкладок.
Т.е. апплет появляется не везде на странице, а только на одной из вкладок. 
В Мозилле все работает на УРА!  smile 
Но вот в Эксплорере - проблема. 
Когда из вкладки с апплетом перехожу на другую вкладку, рисунок, создаваемый апплетом не сразу исчезает.
А если исчез - то насовсем. Т.е. когда я возвращаюсь на вкладку с апплетом - он не отображается.

На всякий случай привожу код апплета:
Код

import java.applet.*;
 
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Vector;
import java.util.List;
import javax.swing.*;


import netscape.javascript.JSObject;

public class mitraGraphicClass extends Applet implements ActionListener{
    TextArea txtArea;
    JSObject win;
    
    Float[] test;
    Integer[] id;
    ArrayList li = new ArrayList();
       int MNOZH = 20;
       Float END = new Float(10.0);
       Float START = new Float(0.5);
       Float SHAG = new Float(0.1);
       /*int START = 5;
       int END = 40;
       int SHAG = 1;*/
       Color bgColor;
       static Float c1;
       static Float c2;
       static Float r1;
       static Float r2;
       static Integer mitra;
      static Vector<Double> data;
      Double min = 0.0;



    public void start() {
        
        Button b = new Button("Построить график функции");
        b.addActionListener(this);
        add(b);
        c1 = new Float(2.92); 
        c2 = new Float(-1.46);
        r1 = new Float(2.2);
        r2 = new Float(1.26);
        int m = 1; 
        data = setFunction(START, END, SHAG, MNOZH, c1,c2,r1,r2,m);
        min = minValue(data);
        System.out.println(min);
    }
    
    public void actionPerformed(ActionEvent e){
        win = JSObject.getWindow(this);
        test = (Float[]) win.call("test", null);
        c1 = test[0]; 
        c2 = test[2];
        r1 = test[1];
        r2 = test[3];
        mitra = (Integer) win.call("getMitra",null);
        
        data = setFunction(START, END, SHAG, MNOZH, c1,c2,r1,r2,mitra);
        min = minValue(data);

        repaint();
        
    }
    
    public void stop() {
        
    }
    
    public void destroy() {
        
    }
    
    public void paint(Graphics g) {
        
        //bgColor = new Color(192,192,192);
        //   setBackground(bgColor);
           
               g.setColor(Color.black);
               //g.setFont(Font.SANS_SERIF);
               g.drawLine(50, 0, 50, 200);
               g.drawLine(50, 0, 55, 5);
               g.drawLine(50, 0, 45, 5);
               g.drawLine(0, 100, 300, 100);
               g.drawLine(300, 100, 295, 95);
               g.drawLine(300, 100, 295, 105);
               int setNullX = 50;
               int setNullY = 100;
               int startPoint = setNullX;
               
               // рисование осей
               for(int i=0;i<200;i=i+20) {
                g.drawLine(setNullX+i, setNullY+2, setNullX+i, setNullY-2);
                Float xval = new Float(i/MNOZH);
                String xvalue = toString().valueOf(xval).substring(0, 1);
                g.drawString(xvalue, setNullX+i, setNullY+14);
               }
               
               for(int j=20;j<100;j=j+20) {
                g.drawLine(setNullX+2, setNullY+j, setNullX-2, setNullY+j);
                g.drawLine(setNullX+2, setNullY-j, setNullX-2, setNullY-j);
                Float yval = new Float(j/MNOZH);
                String yvalue = toString().valueOf(-yval).substring(0, 2);
                g.drawString(yvalue, setNullX-14, setNullY+j);
                yvalue = toString().valueOf(yval).substring(0, 1);
                g.drawString(yvalue, setNullX-14, setNullY-j);
               }
               
               Float st = (START - SHAG)*MNOZH;
               Float fy = new Float(0.0);
               g.setColor(Color.red);
               int sh = 100;
               for (int fx=0; fx<=data.size()-2; fx++) {
                st = st + SHAG*MNOZH;
                int fx1 = (setNullX + st.intValue());
                fy = new Float(data.get(fx)*MNOZH);
                   int fy1 = (setNullY - fy.intValue());
                   int fx2 = (setNullX + st.intValue() + 1);
                   fy = new Float(data.get(fx+1)*MNOZH);
                   int fy2 = (setNullY - fy.intValue());
                   g.drawLine(fx1, fy1, fx2, fy2);
           }
               
               g.drawString("Максимальная глубина ямы:" + min, 10, 200+30);
               
    }
    

    private Vector<Double> setFunction(Float left_max, Float count, Float shag, int m, Float c1, Float c2, Float r1, Float r2, int Mitra) {
        Vector<Double> function = new Vector<Double>();
        Float mitraFloat = new Float(Mitra);
        System.out.println(mitraFloat);
        for (Float x=left_max; x<=count; x=x+shag) {
            Double f = (((((c1*c2*1.6*1.6))/(1.1*x))*(1.0+1.0/(mitraFloat + 1)*sign(c1,c2)*(Math.pow((r1+r2)/x,Mitra)))));
            function.add(f);
        }
        System.out.println(function);
        return function;
    }
    
    private int sign(Float c1, Float c2) {
        int x = 1;
        if ((c1 > 0) && (c2 > 0)) x = 1;
        else if ((c1 < 0) && (c2 < 0)) x = 1;
        else if ((c1 < 0) && (c2 > 0)) x = -1;
        else if ((c1 > 0) && (c2 < 0)) x = -1;
    return x;
    }
    
    private Double minValue(Vector<Double> data) {
        Double temp = null;
        int dataLength = data.size();
        Double max = data.get(0);
        for (int i=1;i<dataLength;i++) {
                if (data.get(i) < max) {
                    temp = data.get(i);
                    data.set(i, max);
                    max = temp;
    
                }
        }
        return max;
        
    }
}


PM MAIL ICQ Skype MSN   Вверх
Keyo
Дата 24.4.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



откройте java-консоль в панели управления и посмотрите... Может какие-то исключения вываливаются. Возможно какие-то проблемы с JSObject, апплет подписан? Код вставки на страницу покажите

Хотя гоню, подписывать ни к чему... Разве что прописать mayscript...

Это сообщение отредактировал(а) Keyo - 24.4.2009, 15:43
PM MAIL   Вверх
Cross
Дата 24.4.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


информатик-аналитик
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 2.6.2006
Где: Москва

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



Вот код вставки апплета:

Код

<applet  
    code="mitraGraphicClass.class" 
        archive="myTest.jar" 
        width = "600" 
        height = "300" 
        name="mitraGraphicClass">
</applet>


причем проблема оказалась только с IE 8.0. Когда я выставила в параметрах браузера соответствие 7 версии,
то все работает отлично. 

Короче, работает только в IE 7.0 !




Это сообщение отредактировал(а) Cross - 24.4.2009, 16:40
PM MAIL ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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