Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
#1

Swing или AWT - Java SE

05.06.2013, 21:22. Просмотров 942. Ответов 15
Метки нет (Все метки)

Когда ресайзю фрейм, в котором панель, на которой скроллпанель, в которой JEditorPane. Короче JFrame>JPanel>JScrollPane>JeditorPane. То видны черные участки. Очень не приятно. Скажите как бороться. Или это вечная проблема Swing?
0
Миниатюры
Swing или AWT  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 21:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Swing или AWT (Java SE):

Вызов событий swing в java.awt.EventQueue.invokeLater
Привет! Все операции в swing как я понял рекомендуется выполнять в диспетчере...

Работа с графикой awt
Привет всем! Пишу игру "подкидной дурак", логику игры уже написал, всё работает...

java.awt.Container.removeAll()
Почему после метода removeAll() не добавляются компоненты. JFrame a = new...

Портирование java.awt на Android
Подскажите пожалуйста как можно осуществить портирование обычного Java...

Install Wizard на Swing
Понадобилось сделать что-то наподобие install wizard-a. Создал панель cards =...

javax.swing.Timer
Добрый день, подскажите пожалуйста как вывести на печать массив с задержкой...

15
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
05.06.2013, 21:25 #2
А вы репаинт делайте при ресайзе фрейма?
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
05.06.2013, 21:29  [ТС] #3
Цитата Сообщение от Care Посмотреть сообщение
А вы репаинт делайте при ресайзе фрейма?
нет. поможет?

Добавлено через 3 минуты
Care, а разве репайнт не делается автоматически при ресайзе фрейма?
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
05.06.2013, 21:33 #4
Не всегда ... У меня во всяком случае не всегда и приходилось янво репаинт делать... Такая же беда была когда вставил картинку вместо фона и она не хотела расширяться... я при ресайзе постоянно делал репаин и обновлял координаты картинки... мне помогло ... щас точно не помню как делал ... тогда только залез в GUI не зная толком конкретных библиотек) Если хотите скину исходники проги ) только там много быдлокода если разберетесь)
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
05.06.2013, 21:35  [ТС] #5
Care, репайнт делять при windowStateChanged?

Добавлено через 57 секунд
Цитата Сообщение от Care Посмотреть сообщение
обновлял координаты картинки
нуууу... мне кажется так не красиво делять
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
05.06.2013, 21:38 #6
Ну для начинающего самоучки нормуль) Сам на Java не давно) да и вобще в программирование )
кстати вот эти методы вроде бы
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D gg = (Graphics2D)g;
GUIlogic logic = new GUIlogic();
logic.drawOptimalSizeImage(this, gg, image, this); //Вот он вроде
logic.printParams(gg);
logic.drawCenter(gg, new Font("Helvetica",Font.BOLD,40), this, Color.RED,""+enchantLogic.get_enchant());
logic.drawCenter(gg,new Font("Helvetica",Font.BOLD,30),this,Color.RED,"Your Record: "+enchantLogic.get_nowRecord(),0,+20);
}

}
public void drawOptimalSizeImage(JPanel j ,Graphics2D g,Image image,ImageObserver obj){
System.out.println("debug drawOSI");

if(WindowState == true){
System.out.println("debug Max");

g.drawImage
(image,0,0,j.getWidth()
,j.getHeight(),obj);
}
if(WindowState == false){
System.out.println("debug Minimum");
g.drawImage
(image,0,0,j.getWidth()
,j.getHeight(),obj);
}
}
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
05.06.2013, 21:48  [ТС] #7
Care, извини, но даже пробовать не буду.

Добавлено через 1 минуту
Care, но все равно спасибо, что откликнулись
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
05.06.2013, 22:14 #8
ахаха не зачто) я бы сам туда не залез )

Добавлено через 5 минут
Попробуйте тогда событие прикрутить windowStateChanged к фрейму и когда оно срабатывает то кординаты менять .... А какой Менеджер компоновки вы используйте?

Добавлено через 1 минуту
Ща набросал просто JTextArea с GridBagLayout и все норм обновляеться....
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
05.06.2013, 22:50  [ТС] #9
Care, использую GroupLayout. Точнее NetBeans использует.
тоже набросал, но все тоже.
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
05.06.2013, 23:29 #10
Незнаю... 1 раз зашел в NetBeans и сразу вышел) И все руками )

Добавлено через 55 секунд
Цитата Сообщение от animator404 Посмотреть сообщение
тоже набросал, но все тоже.
тоесть JTextArea набросали ? Или GridBagLayout ?
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
05.06.2013, 23:30  [ТС] #11
Care, JTextArea и GroupLayout
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
05.06.2013, 23:43 #12
Попробуйте GridBagLayout... если хотите пример напишу...
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
06.06.2013, 00:20  [ТС] #13
Care, ага
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
06.06.2013, 00:59 #14
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
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Toolkit;
 
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
 
public class TestGBL extends JFrame{
public TestGBL(){
    setSize(wight, height);
    setLocation((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()/4
               ,(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()/4);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    Container cont  = getContentPane();
    cont.setLayout(new GridBagLayout());
    
    GridBagConstraints constrains = new GridBagConstraints();  //Задает параметры для Менеджера компоновки
    constrains.gridx = 0;   // Указывает начальную точку Y (0 = Верхний левый угол)
    constrains.gridy = 0;   // Указывает начальную точку X (0 = Верхний левый угол)
    constrains.gridwidth = 1;  //Указывает сколько ячеик будет занимать компонент по горизонтали (по X)
    constrains.gridheight = 1; //Указывает сколько ячеик будет занимать компонент по вертикале (по Y)
    constrains.weightx = 100;  //Указывает на сколько пикселей растяниться компонент при расширении или развертывание фрейма(Если указать weightx , weighty нулем то элемент останиться при прежних размерах)
    constrains.weighty = 100;  // Тоже самое только по Y
    constrains.fill = GridBagConstraints.BOTH;  //Указывае степень заполнения по контейнеру ... GridBagConstraints.BOTH как я помню полное заполнение ячейки
    
    JTextArea areaOne = new JTextArea(5,40);
    JScrollPane paneOne = new JScrollPane(areaOne);
    cont.add(paneOne,constrains); //Добовляем в панель компонент + constrains
    constrains.gridy = 1;  // Мы заполняем только по вертикали по этому меняем значение только Y
 
    JTextArea areaTwo = new JTextArea(5,40);
    JScrollPane paneTwo = new JScrollPane(areaTwo);
    cont.add(paneTwo,constrains);
    constrains.gridy = 2;
    
    
    JTextArea areaThree = new JTextArea(5,40);
    JScrollPane paneTree = new JScrollPane(areaThree);
    cont.add(paneTree,constrains);
    
    
    
    areaOne.setText("Первая");
    areaTwo.setText("Вторая");
    areaThree.setText("Третия");
}
    
    public static void main(String[] args) {
        
    TestGBL gbl = new TestGBL();
    gbl.setVisible(true);
    }
 
    private final int wight = 600;
    private final int height = 400;
    
}
0
animator404
97 / 97 / 12
Регистрация: 05.05.2013
Сообщений: 1,206
06.06.2013, 01:06  [ТС] #15
Care, а почему именно GridBagLayout?

Добавлено через 1 минуту
Care, да - вроде лучше. Но всеравно если резко подергать то не успевает быстро перерисоватся и черные области видно особенно если очень много текста
0
Care
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
06.06.2013, 01:09 #16
Цитата Сообщение от animator404 Посмотреть сообщение
Care, а почему именно GridBagLayout?
Потому что он Намного гибче всех остальных Менеджеров компановки , но сложен в освоении )
ЗЫ Так пишет Хорстман )


Цитата Сообщение от animator404 Посмотреть сообщение
Care, да - вроде лучше. Но всеравно если резко подергать то не успевает быстро перерисоватся и черные области видно особенно если очень много текста
Незнаю у меня вобще все нештяк ... Все сразу перерисовываеться ... и с фул текстом и без него))
0
06.06.2013, 01:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 01:09
Привет! Вот еще темы с решениями:

Зацикливание Swing таймера
Столкнулся я в своём приложении с проблемой зацикливания Swing таймера. В моём...

javax.swing.JTabbedPane и зазор
Создаю javax.swing.JTabbedPane, но появляется вот этот зазор!!! Не могу его...

Сложности с проектом SE+Swing+JDBC
Доброе утро! Ребята, помогите пожалуйста с проектом. Нужно исправить ошибки ...

Видимость JFrame Java Swing
Здравствуйте! У меня такой вопрос. Как сделать так, чтобы рамка окна JFrame...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru