我有一个简单的swing应用程序,它可以管理多个JButton的特定类型的项目,并在底部打印项目树,当项目打开时,请参阅下图的屏幕截图在App: App screenshoot with project openedJScrollPane + JTree初始化后显示的问题
的事情是在没有项目打开我得到的是这样的: App screenshoot without project opened
人机界面简单,看起来像这样:
public class Desktop extends JFrame implements ActionListener {
public Desktop() {
JButton newProject, generate, quit, bAddToClassPath, openProject, saveProject;
JPanel mainPanel;
JScrollPane jscrollpane;
super("MainWindow");
setLookAndFeel();
setSize(330, 440);
ParamMainPanel();
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Desktop();
}
});
}
public static void ParamMainPanel() {
mainPanel = new JPanel(new FlowLayout());
// BUTTONS PARAM
newProject = new JButton("Nouveau projet");
generate = new JButton("Générer...");
quit = new JButton("Quitter");
openProject = new JButton ("Ouvrir projet");
saveProject = new JButton ("Sauvegarder");
bAddToClassPath = UIUtil.iconButton();
bAddToClassPath.setActionCommand("setCP");
bAddToClassPath.addActionListener(this);
mainPanel.add(bAddToClassPath);
newProject.addActionListener(this);
newProject.setActionCommand("newP");
generate.addActionListener(this);
generate.setActionCommand("gen");
quit.addActionListener(this);
quit.setActionCommand("qui");
openProject.addActionListener(this);
openProject.setActionCommand("openP");
saveProject.addActionListener(this);
saveProject.setActionCommand("save");
mainPanel.add(newProject);
mainPanel.add(generate);
mainPanel.add(openProject);
mainPanel.add(saveProject);
mainPanel.add(quit);
// PROJECT TREE
jscrollpane = new JScrollPane(new JTree());
jscrollpane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jscrollpane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
jscrollpane.setMinimumSize(new Dimension(50, 50));
jscrollpane.setLocation(4,61);
jscrollpane.setSize(306,322);
mainPanel.add(jscrollpane);
}
}
所以我想要的是在应用程序的启动,而不是有不良项目打开JTree(进入jscrollpane)没有项目打开,具有相同的显示与项目打开(白色集团),但没有项目树内。 我无法想象如何去做,有什么想法?
1)'jscrollpane.setHorizontalScrollBarPolicy(30);'当定义任务的常量时,不要使用'幻数'。这些常量将从编译时检查中受益,并且通常更具人类可读性。 2)为了更快地获得更好的帮助,请发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 –
感谢您的建议,我对'魔术数字'做了一些编辑,因为它只是一个显示问题,我认为不需要解释整个'项目特定类型',这是相当巨大的。 –
MCVE/SSCCE在哪里? –