簡體   English   中英

旋鈕未出現在滾動條上

[英]Knobs don't appear on scroll bars

我有一個擴展JComponent的類,稱為Canvas。 即使它大於JScrollPane的JViewport,旋鈕也不會出現在滾動條上,並且我無法在Canvas上向下滾動。 我的滾動窗格的代碼在這里:

    final JFrame frame = new JFrame("SketchPad");
    frame.setLayout(new BorderLayout());

    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

    JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    JViewport vp = scrollPane.getViewport();
    vp.setLayout(null);
    vp.setBackground(Color.BLUE);
    frame.getContentPane().add(scrollPane, BorderLayout.CENTER);

    canvas = new Canvas();

    canvas.setBounds(0, 0, w, h);

    vp.add(canvas);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

我在JScrollPane上做錯了什么,還是其他?

vp.setLayout(null);

不要在視口上設置空布局。 當添加到滾動窗格視口的組件的首選大小大於滾動窗格的大小時,滾動條將自動顯示。

我們用來確定首選尺寸的布局管理器(一般來說,您絕對不應使用空布局)。

另外,請勿使用Canvas,即AWT組件。 使用JPanel時,請使用JPanel 或者,如果它是一個自定義類,則應使用更具描述性的名稱,以避免混淆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM