В настоящее время я пытаюсь сделать это возможным для JPanel быть увеличено Моя идея заключается в значительной степени следующим образом:.JPanel внутри JScrollPane скроллинга не отображается
У меня есть JPanel (обычай с перекрываться paintComponent и т.д.) что я помещаю внутри своего JScrollPane.
Что делать, чтобы увеличить масштаб, чтобы мои JPanel с помощью следующего кода (переопределение метода краски)
@Override
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
if (m_hasBeenScaled)
{
m_transform.scale(m_zoomValue, m_zoomValue);
g2.setTransform(m_transform);
m_transform = new AffineTransform();
}
super.paint(g);
}
Это хорошо работает, однако мой JScrollPane не отображает полосы прокрутки, как я масштабироваться, чтобы больше Габаритные размеры. Как заставить JScrollPane отвечать на этот масштаб моего JPanel?
Вот код, я использую, чтобы создать как мой JPanel и JScrollPan (Grid мой класс расширения JPanel):
m_gridPanel = new Grid();
m_gridContainer = new JScrollPane(m_gridPanel);
m_gridContainer.setPreferredSize(new Dimension(605, 605));
1) См. [Должен ли я избегать использования методов набора (Предпочтительный | Максимум | Минимум) в Java Swing?] (Http://stackoverflow.com/q/7229226/418556) (Да.) 2) Для лучше помогите раньше, опубликуйте [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверенный пример) или [SSCCE] (http://www.sscce.org/) (Short, Self Contained, Правильный пример). 3) Я подошел бы так же, как в [этом ответе] (http://stackoverflow.com/a/27119520/418556). –
Это 'm_gridContainer.setPreferredSize (новое измерение (605, 605));' это плохая идея, размер компонента будет изменяться на основе коэффициента масштабирования. Масштабирование компонента намного сложнее, чем изменение преобразования, вы должны также переводить события мыши, см. Http://stackoverflow.com/questions/21174997/how-to-add-mouselistener-to-item-on-java -swing-canvas/21175125 # 21175125 например ... – MadProgrammer
Я теперь переопределяю метод getPreferredSize, как вы сказали, и теперь я вижу появляющиеся полосы прокрутки. Однако, когда я сдвигаю их, представление не меняется вообще. Любая причина для этого? – Bypp