我已經作出了類RefreshablePanel
擴展JPanel
滾動面板
public class RefreshablePanel extends JPanel {
static String description="";
static int x=10;
static int y=11;
protected void paintComponent(Graphics g){
super.paintComponent(g);
for (String line : description.split("\n"))
g.drawString(line, x, y += g.getFontMetrics().getHeight());
}
void updateDescription(String dataToAppend){
description = description.concat("\n").concat(dataToAppend);
System.out.println("The description is "+description);
}
}
,然後我將它添加到我的GUI_class這樣
JScrollPane scrollPane_2 = new JScrollPane();
scrollPane_2.setBounds(32, 603, 889, 90);
frmToolToMigrate.getContentPane().add(scrollPane_2);
descriptionPanel = new RefreshablePanel();
scrollPane_2.setViewportView(descriptionPanel);
descriptionPanel.setBackground(Color.WHITE);
descriptionPanel.setLayout(null);
我已經加入了滾動條在我正在創建RefreshablePanel的實例的類中,但沒有出現滾動條。 我曾嘗試加入
@Override
public Dimension getPreferredSize() {
return new Dimension(400, 1010);
}
以刷新面板,但隨後該字符串消失這樣
,並沒有什麼出現,當我向下滾動
爲什麼,而不是顯示在'JTextArea'的文本代碼中使用自定義呈現? BTW - 'scrollPane_2.setBounds(32,603,889,90);'Java GUI可能需要在多種平臺上工作,使用不同的屏幕分辨率和使用不同的PLAF。因此,它們不利於組件的準確放置。爲了組織強大的圖形用戶界面,請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[空格]的佈局填充和邊框(http: //stackoverflow.com/q/17874717/418556)。 –
我遇到了很多null佈局管理器的問題。下次我設計一個GUI時,我會記住這一點。 –