Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 15:40   #1
linliss
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 2
По умолчанию Прокрутка текста в JTextArea

Вот мой класс. Обычный фрейм в который должен выводится текст.
Код:
import java.awt.*;
import javax.swing.*;
 
import java.io.IOException;
 
public class Test
{
        private static JTextArea textArea;
        private static JScrollPane scrollPane;
        private static JMenuBar mainMenu;
        private static JMenu fileMenu;
        private static JMenu reportMenu;
        private static JMenuItem exitMenuItem;
        private static JMenuItem memoryMenuItem;
        public static Test test;
        
        public Test() throws Exception
        {
                test = this;
                initGUI();
        }
        
        public static void initGUI()
        {
                textArea = new JTextArea();
                scrollPane = new JScrollPane(textArea);
                mainMenu = new JMenuBar();
                fileMenu = new JMenu();
                reportMenu = new JMenu();
                exitMenuItem = new JMenuItem();
                        memoryMenuItem = new JMenuItem();
        
                textArea.setEditable(false);
                textArea.setFocusable(false);
                textArea.setForeground(new Color(51, 51, 51));
                Font font = new Font("Verdana", Font.BOLD, 12);
                textArea.setFont(font);
        
                JFrame window = new JFrame("Test");
                window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                window.setSize(480, 320);
                Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                        Dimension frameSize = window.getSize();
                        window.setLocation(new Point((screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.width) / 2));
                window.add(scrollPane, BorderLayout.CENTER);
                
                fileMenu.setText("File");
                exitMenuItem.setText("Exit");
                exitMenuItem.addActionListener(new java.awt.event.ActionListener()
                {
                        public void actionPerformed(java.awt.event.ActionEvent evt)
                        {
                                        exitMenuAction(evt);
                        }
                 });
                        fileMenu.add(exitMenuItem);
                
                reportMenu.setText("Report");
                memoryMenuItem.setText("Memory");
                        memoryMenuItem.addActionListener(new java.awt.event.ActionListener()
                {
                                 public void actionPerformed(java.awt.event.ActionEvent evt)
                        {
                                        memoryMenuAction(evt);
                        }
                        });
                        reportMenu.add(memoryMenuItem);
                
                mainMenu.add(fileMenu);
                mainMenu.add(reportMenu);
                window.setJMenuBar(mainMenu);
                window.setVisible(true);
        }
        
        public static void logInfo(String log)
        {
                textArea.append(log + "\n");
        }
        
        private static void memoryMenuAction(java.awt.event.ActionEvent evt)
        {
                logInfo("texttexttexttexttexttexttexttexttexttexttexttexttext");
        }
        
        private static void exitMenuAction(java.awt.event.ActionEvent evt)
        {
                        System.exit(0);
        }
        
        public static void main(String args[]) throws Exception
        {
                test = new Test();
        }
}
Все работает как нужно, кроме прокрутки текста. Когда строки подходят к нижней границе окна они не прокручиваются(поклацайте в меню Report -> Memory, чтобы добавить текст), а просто идут дальше вниз и соответственно их не видно. Мне нужно, чтоб было как в виндосовской консоли(cmd.exe).

Проблема еще в том, что при маленьком размере окна оно иногда работат как нужно, иногда нет... это ппц...

На вопрос почему оно запускается не сразу из main ответ: так нужно, это просто оболочка.
linliss вне форума Ответить с цитированием
Старый 23.05.2011, 22:07   #2
linliss
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 2
По умолчанию

случайно определил, что если тыкнуть мышкой в поле с текстом как нужно работать небудет, если не тыкать то все нормально...
linliss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JDialog и прокрутка X@OC Общие вопросы по Java, Java SE, Kotlin 3 04.05.2011 18:27
Форматирование jTextArea Tesmont Общие вопросы по Java, Java SE, Kotlin 6 01.05.2011 20:19
прокрутка текста в Tmemo как в AIMP,QIP Человек_Борща Общие вопросы Delphi 0 15.02.2011 19:54
Прокрутка на сайте DALLAS JavaScript, Ajax 1 07.01.2009 09:34
Прокрутка nala HTML и CSS 0 29.09.2008 16:15