我有这段代码,其中 Canvas
是我创建的一个类,它扩展了 JPanel
它包含一个图像。但是当我使用它时,它不会将 Canvas 放置在 JScrollPane
之上,而是在其后面。为什么要这样做?
以下是 ScrollPanel 的创建方式:
imagePane.setBackground(new java.awt.Color(153, 153, 153));
imagePane.setBorder(null);
jSplitPane2.setRightComponent(imagePane);
这是我的面板在 ScrollPanel 中的位置
Canvas canvas = new Canvas();
canvas.setVisible(true);
canvas.setImage(file);
imagePane.setLayout(new GridBagLayout());
canvas.setSizeFromLoaded();
imagePane.add(canvas);
imagePane.repaint();
canvas 类不会对面板的放置做任何事情,它所做的只是构建和修改它。我确实有一个 JPanel
,它可以工作,但是一旦我用 JScrollPanel
将其切换出来,它就开始将 Canvas 放在它后面。
最佳答案
AWT Components
are heavyweight andSwing JComponents
are lightweight导致
AWT Componets
始终位于Swing JComponents
关于java - JPanel 放置在 JScrollPane 后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13569945/