我是Java初學者(1個月的經驗),但喜歡它到目前爲止!
我需要在Planning應用程序上實現一個我沒有創建的功能,我需要使面板包含幾天在滾動時保持固定(類似Excel的標題)。如何在Java中的JScrollPane中滾動時保持JPanel固定?
在尋找答案,我主要是覺得用JTable
方法,但問題是,我只跟01(JPanel
)(圖中未顯示使用JPanel
或MainPanel
,延伸JPanel
,包含在WindowPanel
(JPanel
)的已經固定)。 我使用的是setColumnHeaderView()
方法,它似乎是唯一顯示結果的方法。
//MainWindow
MainPanel mainPanel = new MainPanel(model);
mainPanel.init(); //fill the mainPanel
windowPanel.add(mainPanel);
JViewport blabla = new JViewport();
blabla.setPreferredSize(mainPanel.getPreferredSize());
blabla.setView(mainPanel);
//JViewport blabla2 = new JViewport();
//blabla2.setPreferredSize(windowPanel.getPreferredSize());
scroll = new JScrollPane(windowPanel);
scroll.setColumnHeaderView(blabla);
getContentPane().add(scroll);
this.addMouseListener(new FocusSetterListener());
this.pack();
this.setVisible(true);
使用這種方法,我得到正確的頭,但沒有滾動條,而下方的面板(這裏的WindowPanel
)停留只是藍色。
實際上,在地方WindowPanel
的我需要顯示填充MainPanel
,這是工作,當我做到這一點:
//MainWindow
MainPanel mainPanel = new MainPanel(model);
mainPanel.init(); //fill the mainPanel
windowPanel.add(mainPanel);
JViewport blabla = new JViewport();
blabla.setPreferredSize(mainPanel.getPreferredSize());
blabla.setView(mainPanel);
scroll = new JScrollPane(mainPanel);
scroll.setColumnHeaderView(blabla);
getContentPane().add(scroll);
this.addMouseListener(new FocusSetterListener());
this.pack();
this.setVisible(true);
但頭部保持藍色,天頭不固定,它只是低於標題,但其他一切都加載罰款,包括滾動條(不相關,所以不在圖片)。 有關信息,下面的面板被稱爲customPanels的cellPanels形成:
我想我接近我的目標,但我測試了很多東西並沒有什麼充分的工作。 我在找人解釋我做錯了什麼,並幫我解決它。
謝謝你的時間!