powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Аплет тормозит
14 сообщений из 14, страница 1 из 1
Аплет тормозит
    #38298892
botasa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 2 аплета, один для просмотра ПДФ-файлов прямо на сайте, работает шустро и без проблем, а есть еще один УЖАСНЫЙ аплет, этот аплет грузится в браузере ну очень долго и глючит, подвисает, в чем проблема, вроде кода там очень мало и все ясно, но такие ключи при отображении ... как это исправить ???

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
import java.util.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JApplet.*;
public class RoslunuJApplet extends JApplet implements ActionListener
{
        Image myImage1;
        String str1,str2,str3,str4,str5,str6,str7;
        boolean flag1=false,flag2=false,flag3=false,flag4=false,flag5=false,flag6=false,flag7=false;
    public void init()
   {
        try
     {
        java.awt.EventQueue.invokeAndWait(new Runnable()
    {
    public void run()
       {
        setSize(1110,650);//той самий розмір задається при побудові форми
        setVisible(true);
        initComponents();
       }
    });
     }
        catch (Exception ex)
      {
        ex.printStackTrace();
      }
   }
  class MyEventMouseAdapter extends MouseAdapter
 {
    public void mouseClicked(MouseEvent e)
      {
        if (e.getSource()==jTable1)
        {
        int indr1=jTable1.getSelectedRow();
//      System.out.println("indr1="+indr1);
        pk1.pathimage data=new pk1.pathimage();
        myImage1=getImage(getDocumentBase(),data.z1[indr1]);
        int indc1=jTable1.getSelectedColumn();
        Object obj1=mymodel.getValueAt(indr1,indc1);
        String s1=obj1.toString();
        repaint();
        }
        }
 }

    public void paint(Graphics g)
      {
        g.drawImage(myImage1,850,40,400,400,this);
      }

    public void actionPerformed(ActionEvent e)
     {
     }
    private void initComponents()
   {
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        setBackground(new java.awt.Color(240, 240, 240));
        jTable1.setBackground(new java.awt.Color(255, 255, 0));
        jTable1.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
        mymodel=new javax.swing.table.DefaultTableModel();
        mymodel.addColumn("Номер");
        mymodel.addColumn("Назва");
        mymodel.addColumn("Латинська назва");
        mymodel.addColumn("Кількість");
        mymodel.addColumn("Опис");
        jTable1.setModel(mymodel);
        jScrollPane1.setViewportView(jTable1);
        try
     {
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        String url="jdbc:mysql://localhost:3306/lik_roslunu";
        Connection conn1=DriverManager.getConnection(url,"root","q3dm17");
        Statement st1=conn1.createStatement();
        ResultSet rs1=st1.executeQuery("SELECT * FROM table1");
        ResultSetMetaData md1=rs1.getMetaData();
        int colums1=md1.getColumnCount();
        int j=0;
        while(rs1.next())
       {
        Vector data=new Vector();
        data.add(Integer.toString(rs1.getInt(1)));
        for(int i=2;i<=colums1;i++)
       {
        data.add(rs1.getString(i));
       }
        mymodel.addRow(data);
        j=j+1;
       }
        st1.close();
        conn1.close();
     }
        catch(SQLException e)
      {
        System.out.println(e);
      }
           javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 753, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(90, 90, 90)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                                                        ))
                            ))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(147, 147, 147)
                        ))
                .addContainerGap(44, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(6, 6, 6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(165, 165, 165)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGap(11, 11, 11)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGap(11, 11, 11)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGap(18, 18, 18)
                        .addGap(5, 5, 5)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGap(1, 1, 1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGap(14, 14, 14)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGap(18, 18, 18)
                        )
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 585, Short.MAX_VALUE))
                .addGap(20, 20, 20))
        );
        
        jTable1.addMouseListener(new MyEventMouseAdapter());

   }

    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.table.DefaultTableModel mymodel;
}
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298894
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откройте Java консоль и делайте дамппотоков. Смотрите чем апплет занят.
EventQueue.invokeAndWait - это зачем?
g.drawImage(myImage1,850,40,400,400,this); - если размер картинки другой, то Java будет постоянно её ресайзить?
Апплет кроме единственной картинки ничего не должен выводить? Для чего всё остальное тогда?
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298898
botasa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю как сделать авторОткройте Java консоль и делайте дамппотоков. Смотрите чем апплет занят.
Я на свингу никогда не писал, по этому понятия не имею для чего это, конечно можно в доку посмотреть авторEventQueue.invokeAndWait - это зачем?

авторАпплет кроме единственной картинки ничего не должен выводить?

да, просто нажать мишкой по нужному полю и оно справа выводит картинку и всё ...

авторДля чего всё остальное тогда?
остальное хлам, который надо почистить ...
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298902
maxkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
botasa111,

Апплет действительно ужасен. Из EDT ходить в базу данных - это плохо. У вас апплет подписан? Нигде SecurityException не выбрасывается (это unchecked exception)? SQL excpetion не происходит (я не знаю, куда он там в апплете выведется, в консоль может быть)? Все нужные библиотеки указаны при встраивании апплета в страницу? Дамп потоков посмотреть тоже стоит, может быть, на соединении с базой подвисает.

У вас апплет extends JApplet. И при этом переопределяет метод paint. Естественно, будут глюки отрисовки. Читайте Painting in AWT and Swing .
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298903
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
botasa111Не понимаю как сделать
В меню браузера есть Java Console.

botasa111Я на свингу никогда не писал, по этому понятия не имею для чего это, конечно можно в доку посмотреть
Т.е. "вот вам код чего попало, я сам не понимаю в нем ничего объясните почему тормозит?"

botasa111да, просто нажать мишкой по нужному полю и оно справа выводит картинку и всё ...

Мишка не против? Вы переопределили метод paint апплета, заменяя его отрисовку своей картинкой полностью.

botasa111остальное хлам, который надо почистить ...
Класс. Зачем его тогда было на форум тащить?
Отложите в сторону свой апплет. Откройте официальный swing tutorial и примеры JDK/demo, найдите что-то похожее на ваш пример и уберите оттуда лишнее. Если есть конкретные вопросы - задавайте.
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298908
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там не аплет, а жАплет, то есть в методе паинт нужно писать гетконтентпане.
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298910
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeТам не аплет, а жАплет, то есть в методе паинт нужно писать гетконтентпане.
Метод paint в Swing лучше вообще не переопределять.
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298913
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczShSergeТам не аплет, а жАплет, то есть в методе паинт нужно писать гетконтентпане.
Метод paint в Swing лучше вообще не переопределять.
Это - известный факт. Работает, в отличие от gwt, очень быстро и корректно. Но то, что там у любого элемента имеется контентпане, гласспане, и ещё какой-то пане (выскочило из головы) - это тоже знать не помешает.
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298918
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А картинки в апплет следует грузить медиатрекером.
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298923
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeА картинки в апплет следует грузить медиатрекером.
Зачем?
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298925
botasa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я переопределил метод paintComponent как я понял это для СВИНГА а не для AWT и все стало очень быстро работать, но повилась другая проблема, я не знаю как вызвать этот метод правильно, что бы отрисовать картинку .... для AWT как я понял метод repaint вызывает paint а в Swing не знаю ...

а на счет Java Console она была отключена ... в настройках панели управления там где ДЖАВА я в меню включил Show java Console и теперь оно работает, там подгружались картинки по 1 штуки при нажании и всё ... я так полагаю глюки были за за кривого кода ...
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298928
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczShSergeА картинки в апплет следует грузить медиатрекером.
Зачем?
На всякий случай. Чтобы, не начать отрисовывать картинку, которая ещё не загружена, а больше и незачем.
...
Рейтинг: 0 / 0
Аплет тормозит
    #38298933
botasa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо кто хотел помочь, проблему уже решил ... аплет работает как часы, только осталось мусор почистить из кода, в котором ничего не шарю =)))
...
Рейтинг: 0 / 0
Аплет тормозит
    #38299011
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeНа всякий случай. Чтобы, не начать отрисовывать картинку, которая ещё не загружена, а больше и незачем.
Можно просто использовать готовые контролы
http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Аплет тормозит
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]