[英]Scrolling a JFrame inside a JPanel
我用這個例子來繪制多邊形作為基礎來制作我自己的多邊形抽屜,但保留了最重要的部分:
public class Main extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
// polygon maker
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("DrawPoly");
frame.setSize(1000, 1000);
frame.setLocationRelativeTo(null);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new Main());
frame.show();
}
}
我發現如果多邊形具有負坐標值,它們只是 go 離開屏幕,我無法看到它們的整體。 為此,我想象某種滾動或縮放到在主內部創建的 JFrame,或者可能到內容窗格。 如何使用鏈接代碼作為基礎實現簡單的滾動?
我發現如果多邊形具有負坐標值,它們只是 go 離開屏幕
您不能使用具有負值的 JScrollPane。
相反,您需要:
translate(...)
方法以將面板上的所有多邊形移動到它們都將可見筆記。 理想情況下,您將創建多邊形並添加,然后在 paintComponent() 方法之外執行 ArrayList。 然后進行翻譯。 所以現在 paintComponent() 方法只需要迭代 ArrayList 並繪制它們,而無需在每次組件需要重新繪制自身時進行創建/翻譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.