Tôi muốn in các chuỗi trong JTextArea và căn chỉnh chúng đúng cách. Thật khó giải thích vì vậy tôi sẽ tải lên ảnh chụp màn hình về những gì tôi đang cố gắng đạt được.Căn chỉnh các chuỗi trong các cột trong JTextArea
Vì vậy Strings in trong mỗi dòng được in từ đối tượng giấy trong đó có các thông số (id, title, tác giả, ngày, xếp hạng). Dữ liệu được đọc từ một tệp văn bản và được lưu trữ trong một LinkedList bằng hàm loadPaper().
Sau đó hàm displayPapers() được sử dụng để hiển thị nội dung của đối tượng Paper với JTextArea. displayPapers() được liệt kê dưới đây:
/** Print all Paper object present in the LinkedList paperList to textArea */
public void displayPapers(){
// clear textArea before displaying new content
displayTxtArea.setText("");
Paper currentPaper;
ListIterator<Paper> iter = paperList.listIterator();
while(iter.hasNext()){
currentPaper = iter.next();
String line = currentPaper.toString();
if("".equals(line)){
continue;
} // end if
String[] words = line.split(",");
displayTxtArea.append (" "
+ padString(words[0],30)
+ padString(words[1],30)
+ " "
+ padString(words[2],30)
+ " "
+ padString(words[3],30)
+ padString(words[4],30)
+ "\n");
System.out.println(words);
//displayTxtArea.append(currentPaper.toString());
} // end while
displayTxtArea.append(" Total " + noOfPapers + " entries!");
} // end showAllPaper
Các padString() chức năng bổ sung thêm không gian để String để tất cả trong số họ có cùng một số từ. PadString() được liệt kê dưới đây:
/** Add spaces to Strings so that all of the are of same number of characters
* @param str String to be padded
* @param n total number words String should be padded to
* @return str Padded string
*/
private String padString(String str, int n){
if(str.length() < n){
for(int j = str.length(); j < n; j++){
str += " ";
} // end for
} // end if
return str;
} // end padString
Tôi đã làm việc này một lúc nhưng vẫn không thể có được giải pháp. Như bạn có thể nhận thấy các hình ảnh trên không phải tất cả mọi thứ là hoàn toàn phù hợp như dự định.
Làm cách nào để sắp xếp chúng hoàn hảo để trông đẹp hơn? Cảm ơn.
Tại sao bạn không sử dụng một JTable? Có vẻ thích hợp hơn để hiển thị dữ liệu trong cột. –
Tôi thà đi cho một JTable mà sẽ cung cấp cho bạn sự linh hoạt của chơi xung quanh với kích thước cột và vị trí vv – GETah