这是我的学生小组的开始。我已经尝试过添加JScrollPanes了,根据我的阅读,它应该可以使它工作,但它根本不会显示标题。我可能会错误地添加它们,但我现在还不确定。任何帮助将不胜感激。谢谢!
//Start of student panel
JPanel stuPanel = new JPanel();
tabbedPane.addTab("Student", stuPanel);
JButton stuButton = new JButton("Add Student");
Object[] stuColumnNames = {"First Name", "Last Name", "Major", "Minor", "GPA"};
JTable stuTable = new JTable(new DefaultTableModel(data, stuColumnNames)){
/**
*
*/
private static final long serialVersionUID = 1L;
//Making it so the cells I want are editable.
@Override
public boolean isCellEditable(int row, int column) {
if (column == 0){
return false;
}
else
return true;
}
};
DefaultTableModel stuModel = (DefaultTableModel)stuTable.getModel();
for(Student tmpS : stuList){
stuModel.addRow(new Object[]{tmpS.getFirstName(),tmpS.getLastName(), tmpS.getMajor(), tmpS.getMinor(), tmpS.getGpa()});
}
stuButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String fName,lName,major,minor;
float gpa;
System.out.println("Please enter a first name:");
fName = in.nextLine();
System.out.println("Please enter a last name:");
lName = in.nextLine();
System.out.println("Please enter a major:");
major = in.nextLine();
System.out.println("Please enter a minor:");
minor = in.nextLine();
System.out.println("Please enter a GPA:");
gpa = in.nextFloat();
in.nextLine();
stuList.add(new Student(fName, lName, major, minor, gpa));
stuModel.addRow(new Object[]{fName, lName, major, minor, gpa});
stuModel.fireTableDataChanged();
}
});
GroupLayout gl_stuPanel = new GroupLayout(stuPanel);
gl_stuPanel.setHorizontalGroup(
gl_stuPanel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_stuPanel.createSequentialGroup()
.addGroup(gl_stuPanel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_stuPanel.createSequentialGroup()
.addGap(155)
.addComponent(stuButton))
.addGroup(gl_stuPanel.createSequentialGroup()
.addContainerGap()
.addComponent(stuTable, GroupLayout.PREFERRED_SIZE, 408, GroupLayout.PREFERRED_SIZE)))
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
gl_stuPanel.setVerticalGroup(
gl_stuPanel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_stuPanel.createSequentialGroup()
.addContainerGap()
.addComponent(stuButton)
.addPreferredGap(ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
.addComponent(stuTable, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE))
);
stuPanel.setLayout(gl_stuPanel);
//End of student panel
答案 0 :(得分:1)
首先看看How to Use Tables和How to Use Scroll Panes
JTable
列标题显示在JScrollPane
您需要将JTable
包裹在JScrollPane
中,例如......
JScrollPane scrollPane = new JScrollPane(stuTable);
gl_stuPanel.setVerticalGroup(
gl_stuPanel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_stuPanel.createSequentialGroup()
.addContainerGap()
.addComponent(scrollPane)
.addPreferredGap(ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE))
);
例如