java 水平滚动条_java – 如何在JScrollPane中获取水平滚动条

many reasons不使用setPreferredSize(),但这里的关键是所需的结果取决于所包含组件的首选大小.特别是,

> ChartPanel具有JPanel指定的默认FlowLayout,但图表忽略此项并调整以填充可用空间;您可以覆盖getPreferredSize()以选择任何所需的初始几何体.

>只有当视口的大小小于内容的大小时,才会显示JScrollPane的滚动条. BorderLayout.WEST和BorderLayout.EAST不会更改,因此滚动条永远不会出现.

调用pack()“会使此Window的大小适合其子组件的首选大小和布局.”在下面的示例中,在pack()之后人为地减小框架的大小,以便使滚动条出现. GridLayout导致两个面板的大小相等.调整框架大小以查看效果.

附录:如果您希望ChartPanel具有固定大小,请将其添加到JPanel;默认的FlowLayout使用首选大小.

q4TGR.png

public class ChartPanelTest {

private static final int N = 64;

private static final int SIZE = 400;

private static final Random random = new Random();

private static XYDataset createDataset() {

final TimeSeries series = new TimeSeries("Random Data");

Day current = new Day();

for (int i = 0; i < N; i++) {

series.add(current, random.nextGaussian());

current = (Day) current.next();

}

return new TimeSeriesCollection(series);

}

private static JFreeChart createChart(final XYDataset dataset) {

JFreeChart chart = ChartFactory.createTimeSeriesChart(

"Test", "Day", "Value", dataset, false, false, false);

return chart;

}

public static void main(String[] args) {

JFrame f = new JFrame();

f.setLayout(new GridLayout(1, 0));

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JFreeChart chart = createChart(createDataset());

f.add(new JScrollPane(new JPanel() {

{

setBackground(Color.red);

}

@Override

public Dimension getPreferredSize() {

return new Dimension(SIZE, SIZE);

}

}));

f.add(new ChartPanel(chart) {

@Override

public Dimension getPreferredSize() {

return new Dimension(SIZE, SIZE);

}

});

f.pack();

f.setSize(2 * (SIZE - N), SIZE - N);

f.setLocationRelativeTo(null);

f.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值