开发一种能对文本中的一段进行简单统计计算的工具。该程序应该有一个滚动文本块窗口和一个状态栏的窗口。这个窗口应该是一个边界被标明的面板,拥有可以显示文本窗口里的字词数量和单个字长度的标记区段,你也可以对其他方面进行统计。这状态栏应该有一个按钮,当你按这按钮时,文本的内容将被从新统计。
除了字与字之间的空白处外,在文本格式中只能使用的标点符号是逗号和句号。
应该只是简单的字数统计与输入校验,因为我不太会用swing做,所以第一次做出来的排版相当难看...
只要能实现以上功能,并且界面表太难看,马上结帖给分!或者能提供该SWING界面的简单操作方法也行~~~~做好后发到[email protected]信箱,时间较紧~KKK
分数不够,继续开贴加~~总共200分~
除了字与字之间的空白处外,在文本格式中只能使用的标点符号是逗号和句号。
应该只是简单的字数统计与输入校验,因为我不太会用swing做,所以第一次做出来的排版相当难看...
只要能实现以上功能,并且界面表太难看,马上结帖给分!或者能提供该SWING界面的简单操作方法也行~~~~做好后发到[email protected]信箱,时间较紧~KKK
分数不够,继续开贴加~~总共200分~
文本框里有输入限制,只能输入字母,逗号与句号
然后点下按钮,统计里面一共有多少字,用LABEL显示只是现在的swing界面是十字格分的,太难看了...谁能提供上面代码的话立马放分啊~~
名字我记不太清了,反正就叫什么edit的,你自己去找找
import java.awt.Color;
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.BevelBorder;
import javax.swing.border.LineBorder;public class StatTextPane extends JPanel {
public static void main(String[] args) {
JFrame fr = new JFrame();
fr.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
fr.getContentPane().add(new StatTextPane());
fr.setPreferredSize(
new Dimension(300, 200));
fr.pack();
fr.setVisible(true);
}
protected PlainTextPane editor;
protected StatusBar statusBar;
public StatTextPane () {
setLayout(new BorderLayout());
setBorder(
new BevelBorder(BevelBorder.LOWERED));
editor = new PlainTextPane();
statusBar = new StatusBar();
add(
new JScrollPane(
editor,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),
BorderLayout.CENTER);
add(statusBar, BorderLayout.PAGE_END);
}
}
class PlainTextPane extends JTextArea {
public PlainTextPane() {
// setBorder(
// new LineBorder(Color.GRAY));
}
}class StatusBar extends JPanel {
public StatusBar() {
}
}
import java.awt.Color;
import java.awt.Dimension;import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.BevelBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.SoftBevelBorder;public class StatTextPane extends JPanel {
public static void main(String[] args) {
JFrame fr = new JFrame();
fr.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
fr.getContentPane().add(new StatTextPane());
fr.setPreferredSize(
new Dimension(300, 200));
fr.pack();
fr.setLocation(300, 300);
fr.setVisible(true);
}
protected PlainTextPane editor;
protected StatusBar statusBar;
public StatTextPane () {
setLayout(new BorderLayout());
// setBorder(
// new BevelBorder(BevelBorder.LOWERED));
// setBorder(
// new LineBorder(Color.GRAY));
editor = new PlainTextPane();
statusBar = new StatusBar();
add(
new JScrollPane(
editor,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),
BorderLayout.CENTER);
add(statusBar, BorderLayout.PAGE_END);
statusBar.addIndicator(new JLabel("Hello"));
statusBar.addIndicator(new JLabel("Good"));
statusBar.addIndicator(new JButton("haha"));
}
}
class PlainTextPane extends JTextArea {
public PlainTextPane() {
setBorder(
new BevelBorder(BevelBorder.LOWERED));
}
}class StatusBar extends JPanel {
JPanel workspace;
JComponent notice;
public StatusBar() {
workspace = new JPanel();
workspace.setLayout(
new BoxLayout(workspace, BoxLayout.LINE_AXIS));
//setLayout(new BorderLayout());
//workspace.setMinimumSize(new Dimension(200, 50));
//workspace.setAlignmentX(JComponent.RIGHT_ALIGNMENT);
workspace.add(Box.createRigidArea(new Dimension(0, 20)) );
// notice = (JComponent)Box.createHorizontalGlue();
notice = new JComponent() {
public Dimension getMinimumSize() {
return new Dimension(50, 20);
}
};
notice.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
workspace.add(notice);
//workspace.add(Box.createRigidArea(new Dimension(10, 0)) );
//workspace.setBorder(new BevelBorder(BevelBorder.LOWERED));
workspace.setBackground(Color.LIGHT_GRAY);
setLayout(new BorderLayout());
add(workspace, BorderLayout.CENTER);
setBorder(new EmptyBorder(2,2,2,2));
setBackground(Color.LIGHT_GRAY);
//add(new JLabel(), BorderLayout.PAGE_END);
}
public void addIndicator(JComponent comp) {
comp.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
//comp.setBorder(new LineBorder(Color.GRAY));
workspace.add(Box.createRigidArea(new Dimension(2,0)));
workspace.add(comp);
}
}
public static void main(String[] args) {
JFrame fr = new JFrame();
...
//如果加大,修改这句。
//fr.setPreferredSize(
// new Dimension(300, 200));
fr.setPreferredSize(
new Dimension(640, 480)); fr.pack(); // 居中显示
Dimension screen =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
fr.setLocation(
(screen.width - fr.getWidth()) / 2,
(screen.height - fr.getHeight()) / 2); fr.setVisible(true);
}