【发布时间】:2017-06-19 13:53:00
【问题描述】:
我有一个主要的JPanel,我在其中使用了其他几个面板。我想在我的面板中添加一个滚动窗格,以便当子面板超出框架时它们应该是可滚动的,但我无法实现这一点。
如何实现面板内面板的正确滚动功能?
我的子面板中的代码:
public class Page13111SubPanel extends JPanel {
/**
* Create the panel.
*/
public Page13111SubPanel() {
// setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
setSize(1000,130);
setLayout(new GridLayout(3, 3, 40, 35));
JLabel label= new JLabel();
label.setText("Vehicle Companies:asdddddddddddddddd1");
label.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
add(label);
JLabel label1= new JLabel();
label1.setText("Vehicle Companies:asdddddddddddddddd2");
label1.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
add(label1);
JLabel label2= new JLabel();
label2.setText("Vehicle Companies:asdddddddddddddddd3");
label2.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
add(label2);
JLabel label3= new JLabel();
label3.setText("Vehicle Companies:asdddddddddddddddd4");
label3.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
add(label3);
// JLabel label3= new JLabel();
// label3.setText("Vehicle Companies:asdddddddddddddddd4");
// label3.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
// add(label3);
JLabel label4= new JLabel();
label4.setText("Vehicle Companies:asdddddddddddddddd5");
label4.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
add(label4);
JLabel label5= new JLabel();
label5.setText("Vehicle Companies:asdddddddddddddddd6");
label5.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
add(label5);
JLabel label6= new JLabel();
label6.setText("Vehicle Companies:asdddddddddddddddd7");
label6.setFont(new Font("Monotype Corsiva", Font.ITALIC, 20));
add(label6);
}
}
我的主面板中的代码:
public class Page1311Test extends JPanel {
// private JTable table;
public JScrollPane pane=null;
public JPanel panel=null;
public JButton back=null;
/**
* Create the panel.
*/
public Page1311Test() {
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(7,1,1,40));
Page13111SubPanel[] panel1=new Page13111SubPanel[7];
panel1[0]=new Page13111SubPanel();
panel.add(panel1[0]);
panel1[1]=new Page13111SubPanel();
panel.add(panel1[1]);
panel1[2]=new Page13111SubPanel();
panel.add(panel1[2]);
panel1[3]=new Page13111SubPanel();
panel.add(panel1[3]);
panel1[4]=new Page13111SubPanel();
panel.add(panel1[4]);
panel1[5]=new Page13111SubPanel();
panel.add(panel1[5]);
panel1[6]=new Page13111SubPanel();
panel.add(panel1[6]);
pane=new JScrollPane(panel,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
add(pane);
}
public static void main(String[] args) {
JFrame frame=new JFrame();
frame.setExtendedState(frame.MAXIMIZED_BOTH);
frame.setLocation(0, 0);
frame.add(new Page1311Test());
frame.setVisible(true);
}
}
【问题讨论】:
-
当你尝试这个时你会得到什么。你有滚动条吗?是否所有面板都可见,但被切断。
标签: java swing jpanel jscrollpane layout-manager