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

Проблемы с JScrollPane

06.05.2013, 22:51. Показов 1995. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru