0
A
回答
0
這裏是this的程序:
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.text.*;
import javax.swing.*;
public class JTextAreaLineCountDemo extends JPanel {
JTextArea textArea;
static Font f = new Font("Helvetiva", Font.ITALIC, 50);
public JTextAreaLineCountDemo() {
super(new GridBagLayout());
String inputStr = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo, Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo, Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo, Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo";
textArea = new JTextArea(inputStr);
textArea.setEditable(false);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
// Add Components to this panel.
GridBagConstraints c = new GridBagConstraints();
c.gridwidth = GridBagConstraints.REMAINDER;
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.weighty = 1.0;
add(textArea, c);
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent ce) {
**textArea.setFont(new Font("Arial", Font.BOLD, 22));**
System.out.println("Line count: " + countLines(textArea));
}
});
}
private static int countLines(JTextArea textArea) {
AttributedString text = new AttributedString(textArea.getText());
text.addAttribute(TextAttribute.FONT, f);
FontRenderContext frc = textArea.getFontMetrics(textArea.getFont())
.getFontRenderContext();
AttributedCharacterIterator charIt = text.getIterator();
LineBreakMeasurer lineMeasurer = new LineBreakMeasurer(charIt, frc);
float formatWidth = (float) textArea.getSize().width;
lineMeasurer.setPosition(charIt.getBeginIndex());
int noLines = 0;
while (lineMeasurer.getPosition() < charIt.getEndIndex()) {
lineMeasurer.nextLayout(formatWidth);
noLines++;
}
return noLines;
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("JTextAreaLineCountDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JTextAreaLineCountDemo());
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
相關問題
- 1. 如何計算JTextArea中的行數,包括由換行引起的行數?
- 2. 計算文件中的換行符
- 3. 如何爲JTextArea行計數換行?
- 4. 我需要一個JTextArea,它在行的末尾計算該行中的字符
- 5. 計算換行符每N個字符?
- 6. 角度計算文字區中換行符的2個字符
- 7. 讓textarea正確計算換行符
- 8. JTextArea換行新行+輸入
- 9. JTextArea中的行
- 10. JAVA:替換JTextArea中的字符,給定特定的行和列
- 11. JTextArea行中的字符限制
- 12. JTextArea中的製表符輸出行爲
- 13. 在使用Java的文件中計算單詞和換行符?
- 14. 換行符將作爲python中的一個句子計算
- 15. Salesforce Apex:計算文本字段中換行符的數量
- 16. jQuery計算div中換行符的數量?
- 17. 如何計算UITextView中的換行符(而不是/ n)?
- 18. 計算文件中換行符的數量
- 19. 計算空白,製表符和換行符的程序
- 20. 計算不包括換行符的字符數
- 21. 如何計算沒有換行符的字符數?
- 22. JTextArea中的新行?
- 23. 計算每行中的字符數
- 24. Java - 在jtextarea中讀取多行;轉換爲字符數組
- 25. JTextArea - 對選定行進行計數
- 26. 如何超載加法運算符來進行交換計算?
- 27. 轉換字符串計算,計算的價值軌道
- 28. 如何轉換字符串並在Swift中執行計算?
- 29. 使用getchar()計算空格,製表符和換行符
- 30. 計算換行符,空格和製表符