Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 18

Проблемы с JScrollPane

06.05.2013, 22:51. Показов 1970. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача следующая , записывать информацию в JTextArea в цикле, информация должна вписываться не заменяя старую
Вписывать не заменяя старую я научился, а вот сделать скролл не получается =(
Вот код:
Главный класс
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
import java.awt.Color;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
 
 
public class main 
{
     static JTextArea res = new JTextArea(); 
     
      
    public static void main(String[] args)
    {
        
        Graphic line = new Graphic();
        //цвет
          Color qwe = new Color(100, 180, 255);
        //Линии Координат
          JPanel xline = new JPanel();
          xline.setSize(600, 2);
          xline.setLocation(0, 299);
          xline.setBackground(Color.BLACK);
          JPanel yline = new JPanel();
          yline.setSize(2, 600);
          yline.setLocation(299, 0);
          yline.setBackground(Color.BLACK);
        //Панелька под график
          JPanel gpan = new JPanel();
          gpan.setSize(600, 600);
          gpan.setBackground(qwe);
          gpan.setLocation(400, 0);
          gpan.setLayout(null);
          gpan.add(xline);
          gpan.add(yline);
          gpan.add(line);
        //Панель Кнопок
          JPanel bpan = new JPanel();
          bpan.setSize(400, 600);
          bpan.setBackground(Color.GRAY);
          bpan.setLocation(0, 0);
          bpan.setLayout(null);
          JButton nuton = new JButton("Ньютон");
          nuton.setSize(100, 25);
          nuton.setLocation(0, 0);
          JButton nelder = new JButton("Нелдор");
          nelder.setSize(100, 25);
          nelder.setLocation(300, 0);
          bpan.add(nuton);
          bpan.add(nelder);
          res.setLocation(0, 0);
          res.setSize(400, 525);
          res.setWrapStyleWord(true);
          JScrollPane scroll = new JScrollPane(res);
          scroll.setLocation(0, 25);
          scroll.setSize(400, 525);
          scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
          scroll.setViewportView(res);
          scroll.add(res);
          bpan.add(scroll);
             for(int q = 0; q<500; q++)
             {
                 res.append(q + "\n");
             }
        //Главное Окно
          JFrame mframe = new JFrame("ГрафачОк");
          mframe.setLayout(null);
          mframe.setSize(1000, 600);
          mframe.setVisible(true);
          mframe.add(gpan);
          mframe.add(bpan);
          
    
    }
 
}
Класс унаследованный от JPanel с переопределенной функцией Paint
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
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.util.Random;
 
import javax.swing.JPanel;
 
 
public class Graphic extends JPanel 
{
    public static double F(double x, double y)
    {
        //return 3*x*x - 6*x + 5;
        return x*x*x*x + y*y*y*y;
    }
    public static double polF(double z, double phi)
    {
        return  Math.pow(z / (  Math.pow(Math.sin(phi), 4) + Math.pow(Math.cos(phi), 4)  ), (double) 1/4);
    }
    public void paintComponent(Graphics g) 
    {
        String text;
        int Xo = 200;
        int Yo = 200;
        int oldx = 0;
        int oldy = 0;
         g = (Graphics2D) g;
       
        
              Graphics2D g2d = (Graphics2D)g;
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
              g2d.setStroke(new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
              g2d.setColor(Color.ORANGE);
              
              for (int z = 2; z < 700 ; z += 70)
                {
                    boolean fl = false;
 
                    for (int phi = 0; phi < 360; phi++)
                    {
                        double rad = Math.PI * phi / 180;
                        double r = (double) polF(z, rad);
                     //   text = Double.toString(r);
                    //    main.res.setText("r" + text);
                        //вычисляю
                        double dx = r * Math.cos(rad);
                        double dy = r * Math.sin(rad);
                        //масштабирую
                        dx = dx*40;
                        dy = dy*-40;
                        //округляю
                        int x = (int) Math.round(dx);
                    //    text = Integer.toString(x);
                    //   main.res.setText("X" + text);
                        int y = (int) Math.round(dy);
                   //     text = Integer.toString(y);
                  //      main.res.setText("Y" + text);
                        if (fl)
                        {
                            g2d.drawLine(oldx + Xo, oldy + Yo, x + Xo, y + Yo);
                        }
 
                        oldx = x;
                        oldy = y;
 
                        fl = true;
                    }
                }
              
     }
    public Graphic()
    {
        setOpaque(true);
        super.setLocation(100, 100);
        super.setSize(400, 400);
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2013, 22:51
Ответы с готовыми решениями:

Проблемы с выводом в JTextArea внутри JScrollPane
Когда я использую JTextArea внутри JScrollPane с последовательным выводом большого количества строк в JTextArea из отдельного потока, ...

Как на JScrollPane добавить несколько JScrollPane?
как на JScrollPane добавить несколько JScrollPane? Мне нужно на фрейме разместить пару JLabel, а под ними JTable. я так понимаю,...

Jscrollpane
Есть таблица с 26 столбцами, горизонтальный скроллбар не показывает...

1
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 18
11.05.2013, 22:40  [ТС]
Спасибо всем за помощь xD
Короче если у кого возникнет такая же проблема: нужно было добавлять на JSrollPane, JTextArea не так
" scroll.add(res);" а вот так " scroll.getViewport().add(res);"
(scroll - это JSrollPane, res - JTextArea)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2013, 22:40
Помогаю со студенческими работами здесь

JScrollPane
Мне нужно добавить нужную мне панель (MapPanel) на панель прокрутки, чтобы у MapPanel был фиксированный размер. Следующий код растягивает...

Реинициализация jScrollPane
Подскажите как сделать реинициализацию jScrollPane, после подгрузки котента из другого файла. Вот этот код грузит контент и затем должен...

Прокрутка JScrollPane
привет. подскажите, как сделать, чтобы при добавлении нового элемента внутрь панели вертикал скролл сам проматывался вниз?

jScrollPane и $.ajax
Здравствуйте. Возникла проблема, есть плагин jScrollPane. &lt;div class=&quot;scrollBox&quot;&gt; &lt;div id=&quot;pane&quot;...

Не отображается JScrollPane
Не отображается скроллбар. Если заставить отображаться насильно, то он отображается, но нет возможности прокрутить. Хотя текст явно имеется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru