如何在 JScrollPane 的左上角添加一个组件?
How do I add a component in the upper-left of a JScrollPane?
我创建了一个 JScrollPane
和一个 RowHeaderView
、一个 ColumnHeaderView
和一个 ViewPortView
。我添加了不同颜色的 JPanel,并注意到左上角还剩下一个角,您不能只添加一个 Component
。我想问一下,如何在那里添加一个 Component
。
这里是一张图片。我指的是绿色区域:
这是我的代码:
public class Example {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(1000, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
JPanel panel0 = new JPanel();
panel0.setBackground(Color.yellow);
JPanel panel1 = new JPanel();
panel1.setBackground(Color.red);
panel1.setPreferredSize(new Dimension(30, 200));
JPanel panel2 = new JPanel();
panel2.setBackground(Color.blue);
panel2.setPreferredSize(new Dimension(200, 30));
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(panel0);
scrollPane.setRowHeaderView(panel1);
scrollPane.setColumnHeaderView(panel2);
scrollPane.setBackground(Color.green);
frame.add(scrollPane);
frame.setVisible(true);
}
}
很简单。使用方法 setCorner
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, new JButton());
我创建了一个 JScrollPane
和一个 RowHeaderView
、一个 ColumnHeaderView
和一个 ViewPortView
。我添加了不同颜色的 JPanel,并注意到左上角还剩下一个角,您不能只添加一个 Component
。我想问一下,如何在那里添加一个 Component
。
这里是一张图片。我指的是绿色区域:
这是我的代码:
public class Example {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(1000, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
JPanel panel0 = new JPanel();
panel0.setBackground(Color.yellow);
JPanel panel1 = new JPanel();
panel1.setBackground(Color.red);
panel1.setPreferredSize(new Dimension(30, 200));
JPanel panel2 = new JPanel();
panel2.setBackground(Color.blue);
panel2.setPreferredSize(new Dimension(200, 30));
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(panel0);
scrollPane.setRowHeaderView(panel1);
scrollPane.setColumnHeaderView(panel2);
scrollPane.setBackground(Color.green);
frame.add(scrollPane);
frame.setVisible(true);
}
}
很简单。使用方法 setCorner
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, new JButton());