[英]JTable in JScrollPane
我在JScrollPane
添加JTable
,然后將滾動窗格添加到面板,然后將面板添加到框架,但這不起作用,這是代碼。 我想在表格或框架上使用滾動條,使表格可滾動,以便用戶看到它。 我已經嘗試了很多方法,但是對我不起作用的是整個代碼
public class View extends JFrame {
private static final long serialVersionUID = 1L;
/**
* Launch the application.
*/
//here in the main method i it adds in the JFrame everything
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
View frame = new View();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public void showData() throws SQLException, ParseException {
panel = new JPanel();
panel_1 = new JPanel();
model_1 = new DefaultTableModel();
model_2 = new DefaultTableModel();
model_1.addColumn("Title");
model_1.addColumn("Priority ");
model_1.addColumn("DeadLine");
model_1.addColumn("Time");
model_1.addColumn("Progress");
model_2.addColumn("Task Title");
model_2.addColumn("Priority ");
model_2.addColumn("DeadLine");
model_2.addColumn("Time");
model_2.addColumn("Done");
Database obj = new Database();
ArrayList<Task> list = obj.getTasks();
for (int i = 0; i < list.size(); i++) {
Task task = list.get(i);
Object[] row = { task.title, task.priority, task.deadine,
task.time, task.progress };
// Comparing Dates
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("MM-d-yyyy");
String dateNow = formatter.format(currentDate.getTime());
java.util.Date systemDate = new SimpleDateFormat("MM-d-yyyy",
Locale.ENGLISH).parse(dateNow);
if (!task.deadine.before(systemDate)) {
// add row to to do tab
model_1.addRow(row);
} else {
// add row to done tab
model_2.addRow(row);
}
// **********************
}
toDoTable = new JTable(model_1);
doneTable = new JTable(model_2);
toDoTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
doneTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
toDoTable.setFillsViewportHeight(true);
doneTable.setFillsViewportHeight(true);
//here i add the JScrollPane and it doesnt work
JScrollPane jpane = new JScrollPane(toDoTable);
JScrollPane jpane1 = new JScrollPane(doneTable);
panel.add(jpane);
panel_1.add(jpane1);
panel.add(jpane);
panel_1.add(jpane1);
}
}
如果您想在表格內滾動,請這樣做,
JScrollPane jpane = new JScrollPane(table);
但是,如果要使表格本身滾動,則將保存表格的面板添加到JScrollPane
並將其添加到框架中。
public class JTableExample {
public static void main(String[] args) {
Object[] column = {"One", "Two"};
Object[][] data = {{1, 2}, {3, 4}, {5, 6}};
JTable toDoTable = new JTable(data, column);
JScrollPane jpane = new JScrollPane(toDoTable);
JPanel panel = new JPanel();
JFrame frame = new JFrame();
panel.add(jpane);
frame.add(new JScrollPane(panel));
frame.setVisible(true);
}
}
輸出:
為前BorderLayout添加具有正確布局的面板
panel.add(jpane,BorderLayout.NORTH);
panel_1.add(jpane1,BorderLayout.SOUTH);
或者您可以使用javax.swing.Box
Box box = Box.createVerticalBox();
box.add(jpane);
box.add(jpane1);
frame.getContentPane().add(box);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.