|
|
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Я отрисовываю графические обьекты и вставляю их в 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); } } Всё изображается, (в данном случае длинная полоса) но прокрутка не работает. То есть невозможно всю полосу полностью просмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:21:31 |
|
||
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
А что, если размер панели задать, соответствующий размеру рисунка? А то по умолчанию, у тебя панель будет 500 на 400, т.е. как фрейм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:33:53 |
|
||
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
wessenА что, если размер панели задать, соответствующий размеру рисунка? А то по умолчанию, у тебя панель будет 500 на 400, т.е. как фрейм. Под панелью я имею ввиду JPanel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:36:16 |
|
||
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
Я не знаю заранее, каким большим будет рисунок. Его величина может быть любой. Но как правило он будет больше, чем фрейм. Для этого и нужен JScrollPane. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:47:04 |
|
||
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
zeisigЯ не знаю заранее, каким большим будет рисунок. Его величина может быть любой. Но как правило он будет больше, чем фрейм. Для этого и нужен JScrollPane. Я этим серъезно не занимался, но думаю, что JPanel не будет автоматически расширятся, в соответствии с рисунком, который ты нарисовал, потомучто JPanel то уж точно не знает, чего ты там изобразил, ведь твой рисунок, это не стандартный компонент у которого можно получить размеры и еще кучу свойств. А вот ты то, как раз знаешь размеры будущего рисунка, а иначе то как ?? :) Используя эти размеры, создай панель, затем рисуй на ней и затем только помещай в JScrollPane. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:55:45 |
|
||
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
Кстати, наверника есть какой нить стандартный/нестандартный компонент, например ImageJPanel, кторый решит твои проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 18:01:24 |
|
||
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
Так вот странное что-то, я просто создаю большую панель, с размерами 1200 х 1000, то есть в конструкторе ShapeExample написал this.setSize(1200,1000); запихнул её в скролпэйн и всё равно не пашет. А размер рисунка я действительно знать не могу. Это должны быть диаграммы, которые рисуются динамически. Если точнее, то statecharts. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 18:42:58 |
|
||
|
JScrollPane и графика
|
|||
|---|---|---|---|
|
#18+
пример с рисунком http://java.sun.com/docs/books/tutorial/uiswing/components/scrollpane.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 20:10:52 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2147835]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
190ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 524ms |

| 0 / 0 |
