0
我有一個帶按鈕的文本遊戲。當點擊一個按鈕時,文本出現。我的文本出現在jPanel中,它位於jScrollPane中。我希望我的jPanel自動爲我的文本行添加更多垂直空間。我一直在用手工做,但這耗費更多時間。無論如何要做到這一點,或者可能以某種方式包裝jPanel。我對此很新,所以如果有任何額外的信息需要你幫助我隨時提問。謝謝。添加文本時自動調整jPanel的大小
我有一個帶按鈕的文本遊戲。當點擊一個按鈕時,文本出現。我的文本出現在jPanel中,它位於jScrollPane中。我希望我的jPanel自動爲我的文本行添加更多垂直空間。我一直在用手工做,但這耗費更多時間。無論如何要做到這一點,或者可能以某種方式包裝jPanel。我對此很新,所以如果有任何額外的信息需要你幫助我隨時提問。謝謝。添加文本時自動調整jPanel的大小
我會使用一個可以自動執行此操作的組件 - 一個JTextArea。隨着更多文本的添加,它會自動放大。
如果您需要更具體的幫助或代碼示例,請發佈您自己的小型可編譯和可運行測試示例程序,我可以嘗試修改它。
幽州:
我不想使用一個JTextArea,因爲我不希望用戶能夠突出或刪除任何在那裏的第一個文本地點。
沒問題。只要使JTextArea不可聚焦和不可編輯。
我一直在使用等於「」的jLabel,當按下按鈕時,該jLabel被賦予一個新的值。
嘗試是這樣的:
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
@SuppressWarnings("serial")
public class AddNewLines extends JPanel {
private JTextArea textArea = new JTextArea(10, 15);
private JButton addLineBtn = new JButton(new AddLineAction("Add Line", KeyEvent.VK_A));
public AddNewLines() {
textArea.setEditable(false);
textArea.setFocusable(false);
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
textArea.setOpaque(false);
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
add(scrollPane);
add(addLineBtn);
}
class AddLineAction extends AbstractAction {
private int count = 0;
public AddLineAction(String name, int mnemonic) {
super(name);
putValue(MNEMONIC_KEY, mnemonic);
}
@Override
public void actionPerformed(ActionEvent e) {
if (count != 0) {
textArea.append("\n");
}
textArea.append("Line of Text: " + count);
count++;
}
}
private static void createAndShowGui() {
AddNewLines mainPanel = new AddNewLines();
JFrame frame = new JFrame("Add New Lines");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
我不想使用一個JTextArea,因爲我不希望用戶能夠突出或刪除任何在那裏的文本第一名。我一直在使用與''「'相等的jLabel,當按下按鈕時,該jLabel被賦予一個新的值。 – MattS 2014-10-05 22:07:30
@MattSpiller:請參閱編輯來回答。 – 2014-10-05 22:18:11
所以我還沒有測試任何與JTextArea(儘管我會)但無論如何改變其他功能,如JTextArea的顏色,還有大膽的某些區域的文本的能力?如果是這樣,我可以使它與我已有的一致。 – MattS 2014-10-05 22:29:03