我有一个有两个内部框架的框架。我创建了一个'Board'对象,它是Board类的一个实例。 Board类扩展了JPanel。
class Layout extends JFrame{
Dimension dimen=Toolkit.getDefaultToolkit().getScreenSize();
public initializeWindows(){
JInternalFrame dev=new JInternalFrame("Devices",true,true,false,false);
JInternalFrame cir=new JInternalFrame("Circuit",true,true,false,false);
Board b=new Board();
cir.add(b);
JScrollPane scroll=new JScrollPane(b);
this.add(dev);
this.add(cir);
dev.setVisible(true);
dev.setSize(150,650);
dev.setLocation(0,100);
dev.pack();
inf.setVisible(true);
inf.setPreferredSize(new Dimension((int)(dimen.width*0.88),(int)(dimen.height*0.75)));
inf.setLocation(150,100);
inf.setBackground(Color.WHITE);
inf.pack();
}
但滚动窗格没有出现。为什么是这个?
答案 0 :(得分:1)
因为您没有将JScrollPane
添加到内部框架。
您实际上是将Board
添加到JInternalFrame cir
和JScrollPane
,而您应该执行类似
JInternalFrame cir=new JInternalFrame("Circuit",true,true,false,false);
Board b=new Board();
JScrollPane scroll=new JScrollPane(b);
cir.add(scroll)
this.add(cir);
答案 1 :(得分:1)
请设置cir.setVisible(true)
和cir.add(scroll)
而不是cir.add(b);
如果您希望滚动条始终可见,则可以使用
scroll = JScrollPane(b,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS)