我正在開發一個Java GUI程序來存儲一些管理數據。設置JTextField在JPanel中的固定大小
現在我想從我的數據庫(mysql)顯示eventdata到使用JTextField的JPanel, 我的問題是我無法獲得固定的JTextField的大小,因爲它總是佔用很多地方(見圖片)
圖片:http://postimg.org/image/5pcklo5n1/
這裏是我的代碼,任何人有什麼祕訣? (我是新來的Java):
public void editEvent() {
JFrame frEventEdit = new JFrame ("Event Edit Menu");
frEventEdit.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frEventEdit.setVisible(true);
frEventEdit.setSize(700, 500);
//JPanel for displaying data
JPanel pnData = new JPanel();
pnData.setLayout(new BoxLayout(pnData, BoxLayout.PAGE_AXIS));
pnData.add(Box.createRigidArea(new Dimension(0,5)));
pnData.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
pnData.setAutoscrolls(true);
Statement stmt;
try {
stmt = mySql.createStatement();
ResultSet rs = stmt.executeQuery("SELECT name, date, time, type, address, representative FROM events ") ;
while (rs.next() == true){
System.out.println(rs.getString("name")+" "+rs.getString("date")+" "+rs.getString("time")+" "+rs.getString("type")+" "+rs.getString("address")+" "+rs.getString("representative"));
final JTextField txtEventList = new JTextField(rs.getString("name")+" "+rs.getString("date")+" "+rs.getString("time")+" "+rs.getString("type")+" "+rs.getString("address")+" "+rs.getString("representative"));
pnData.add(txtEventList, BorderLayout.CENTER);
}
} catch (SQLException e) {
e.printStackTrace();
}
JScrollPane scroller = new JScrollPane(pnData);
frEventEdit.add(scroller);
frEventEdit.setLocationRelativeTo(null);
}
在此先感謝
1)爲了更好地幫助越早,張貼[SSCCE](http://sscce.org/)(因子出DB)2)提供GUI的ASCII藝術,因爲它應該以最小的尺寸出現並且(如果可調整大小)以及額外的寬度/高度。 3)while(rs.next()== true){'建議'JTable'而不是許多組件。 –