У меня есть JFrame, который содержит Jscrollpane, который, в свою очередь, содержит Jpanel с отображаемым в нем изображением. Все события мыши и рисование относятся к координатам Jpanel. Теперь я хочу поместить маркер направляющих линий поверх окна просмотра. Маркер должен оставаться постоянным независимо от масштабирования или панорамирования изображения. Как лучше всего это сделать? Заранее спасибо.
Как нарисовать направляющий маркер для области просмотра JScrollPane
comment
Для примера
- person MadProgrammer   schedule 25.11.2015
Ответы (1)
Вы можете сделать пользовательское рисование в окне просмотра панели прокрутки:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
public class ViewportBackground
{
private static void createAndShowUI()
{
JViewport viewport = new JViewport()
{
@Override
protected void paintChildren(Graphics g)
{
super.paintChildren(g);
int w = this.getWidth();
int h = this.getHeight();
g.drawLine(0, 0, w, h);
}
};
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewport(viewport);
scrollPane.setViewportView( new JLabel( new ImageIcon(...) ) );
JFrame frame = new JFrame("Viewport Background");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add( scrollPane );
frame.setLocationByPlatform( true );
frame.pack();
frame.setVisible( true );
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowUI();
}
});
}
}
person
camickr
schedule
25.11.2015
Я бы выбрал
paint
(я такой простой), но и этот подойдет
- person MadProgrammer; 25.11.2015