Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JScrollPane и графика / 9 сообщений из 9, страница 1 из 1
22.11.2005, 17:21:31
    #33393146
zeisig
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
Здравствуйте!

Я отрисовываю графические обьекты и вставляю их в JScrollPane. Но полосы прокрутки при этом не появляются. То есть то, что выходит за рамки JScrollPane, не показывается. Если вставляю что-нибудь из swing, например JLabel очень длинную, всё работает. Но как только что-то из графики, не идёт.

Вот такой примерно код:

public class SelectionTask
{
public void makeShape (Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
Line2D line2 = new Line2D.Double(300,230,1800, 230); // очень длинная полоса
g2.draw(line2);
}
}


public class ShapeExample extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
new SelectionTask(200, 100, 240, 121, 4).makeShape(g);
}
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(500, 400);
JScrollPane pane = new JScrollPane(new ShapeExample());
frame.getContentPane().add(pane);
frame.setVisible(true);
}
}



Всё изображается, (в данном случае длинная полоса) но прокрутка не работает. То есть невозможно всю полосу полностью просмотреть.
...
Рейтинг: 0 / 0
22.11.2005, 17:33:53
    #33393190
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
А что, если размер панели задать, соответствующий размеру рисунка? А то по умолчанию, у тебя панель будет 500 на 400, т.е. как фрейм.
...
Рейтинг: 0 / 0
22.11.2005, 17:36:16
    #33393196
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
wessenА что, если размер панели задать, соответствующий размеру рисунка? А то по умолчанию, у тебя панель будет 500 на 400, т.е. как фрейм.

Под панелью я имею ввиду JPanel.
...
Рейтинг: 0 / 0
22.11.2005, 17:47:04
    #33393231
zeisig
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
Я не знаю заранее, каким большим будет рисунок. Его величина может быть любой. Но как правило он будет больше, чем фрейм. Для этого и нужен JScrollPane.
...
Рейтинг: 0 / 0
22.11.2005, 17:55:45
    #33393261
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
zeisigЯ не знаю заранее, каким большим будет рисунок. Его величина может быть любой. Но как правило он будет больше, чем фрейм. Для этого и нужен JScrollPane.

Я этим серъезно не занимался, но думаю, что JPanel не будет автоматически расширятся, в соответствии с рисунком, который ты нарисовал, потомучто JPanel то уж точно не знает, чего ты там изобразил, ведь твой рисунок, это не стандартный компонент у которого можно получить размеры и еще кучу свойств. А вот ты то, как раз знаешь размеры будущего рисунка, а иначе то как ?? :) Используя эти размеры, создай панель, затем рисуй на ней и затем только помещай в JScrollPane.
...
Рейтинг: 0 / 0
22.11.2005, 18:01:24
    #33393280
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
Кстати, наверника есть какой нить стандартный/нестандартный компонент, например ImageJPanel, кторый решит твои проблемы.
...
Рейтинг: 0 / 0
22.11.2005, 18:42:58
    #33393360
zeisig
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
Так вот странное что-то, я просто создаю большую панель, с размерами 1200 х 1000,
то есть в конструкторе ShapeExample написал
this.setSize(1200,1000);

запихнул её в скролпэйн и всё равно не пашет. А размер рисунка я действительно знать не могу. Это должны быть диаграммы, которые рисуются динамически. Если точнее, то statecharts.
...
Рейтинг: 0 / 0
22.11.2005, 20:10:52
    #33393463
KPIIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
пример с рисунком
http://java.sun.com/docs/books/tutorial/uiswing/components/scrollpane.html
...
Рейтинг: 0 / 0
12.10.2006, 12:08:06
    #34049869
AlexeyShponarsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JScrollPane и графика
Код: plaintext
 this .setSize( 1200 , 1000 );
попробуй
Код: plaintext
setPrefferedSize()
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JScrollPane и графика / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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