gpt4 book ai didi

java - jscrollpane 滚动面板

转载 作者:行者123 更新时间:2023-11-30 01:39:20 26 4
gpt4 key购买 nike

我必须编写一个小程序,在左侧我必须使用一个面板来包含可以是按钮列表的车辆列表,问题是什么,没有给出车辆数量!所以,当车辆数量太多时,我需要滚动面板,

我为 jframe 执行此操作,但它在面板上无法正常工作,请帮我举个例子

我用于滚动面板的代码是:

 public class VehicleList extends JPanel {
private ArrayList<VehicleReport> vehicles;
private ArrayList<JButton> v_buttons = new ArrayList<JButton>();



public void showList(ArrayList<Vehicles> vehicles)
{
this.vehicles = vehicles;
//...
add(getScrollpane());
setSize(155,300);

}

public JScrollPane getScrollpane()
{
JPanel panel = new JPanel();
panel.setPreferredSize(new DimensionUIResource(150, 300));
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints constraint = new GridBagConstraints();
panel.setLayout(gridbag);
constraint.fill = GridBagConstraints.HORIZONTAL;
JLabel title = new JLabel("Vehiles list");
constraint.gridwidth = 2;
constraint.gridx = 0;
constraint.gridy = 0;
constraint.ipady = 230;
gridbag.setConstraints(title, constraint);
panel.add(title);
// end of set title
constraint.gridwidth = 1;
int i=1;

for(JButton jb : v_buttons )
{
constraint.gridx =0;
constraint.gridy = i;
gridbag.setConstraints(jb, constraint);
panel.add(jb);
JLabel vehicle_lable = new JLabel("car" + i);
constraint.gridx = 1;
constraint.gridy = i;
gridbag.setConstraints(vehicle_lable, constraint);
panel.add(vehicle_lable);
i++;
}
JScrollPane jsp = new JScrollPane(panel);
return jsp;

}

}

在 jaframe 中将 jscrollpane 添加到 jframe 后,我放置此

打包();

setSize(250, 250);

设置位置(100, 300);

而且效果很明显!!!

最佳答案

您也没有向我们展示 VehicleList JPanel 的布局管理器。如果您没有设置它,它默认为 FlowLayout,与 JFrame(您提到这确实可以工作)不同,JFrame 的内容 Pane 默认为 BorderLayout。所以也许你只需要更改相关代码:

//...
add(getScrollpane());

//...
setLayout(new BorderLayout());
add(getScrollpane(), BorderLayout.CENTER);

关于java - jscrollpane 滚动面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1445843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com