首页 > 编程语言 >[java]Regular Expression Testor

[java]Regular Expression Testor

时间:2023-01-04 14:33:24浏览次数:40  
标签:java import private Regular swing new Expression javax

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.border.*;

import java.awt.Toolkit;

public class RegExpRun extends JFrame {
private static final long serialVersionUID = 6819222900970457455L;

private JPanel mainPanel = new JPanel();

private JButton runButton = new JButton();
private JLabel label = new JLabel();
private JTextField field = new JTextField();
private JTextArea area = new JTextArea();
private DefaultListModel rightModel = new DefaultListModel();
private JList rightList = new JList(rightModel);
private JScrollPane scroll = null;

public RegExpRun(String title) {

Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;

//置于屏幕中央
setSize(screenWidth/2, screenHeight/2);
setLocation(screenWidth/4, screenHeight/4);
setTitle("Overcome Regular Expression");
setPreferredSize(new Dimension(600, 400));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initComponent();
addData();
pack();
setVisible(true);
}

private static void createAndShowGUI() {
new RegExpRun("GridBagLayoutFrameDemo");
}

private void initComponent() {

label.setText("Regex");
runButton.setText("実行");

area.setBorder(BorderFactory.createTitledBorder("Source"));
scroll = new JScrollPane(area);

scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);


rightList.setPreferredSize(new Dimension(150, 150));
rightList.setBorder(BorderFactory.createTitledBorder("Matches"));

// Border redline = BorderFactory.createLineBorder(Color.RED);
TitledBorder title = BorderFactory.createTitledBorder("ようこそ");
title.setTitleJustification(TitledBorder.TOP);
mainPanel.setBorder(BorderFactory.createTitledBorder(title));

mainPanel.setLayout(new GridBagLayout());

GridBagConstraints c = new GridBagConstraints();


c.gridx = 0;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 1;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0;
c.weighty = 0;
mainPanel.add(label, c);

c.gridx++;
c.weightx = 3;
mainPanel.add(field, c);

c.gridx++;
c.weightx = 0;
c.gridwidth = 1;
c.gridheight = 1;
mainPanel.add(runButton, c);

c.gridx = 0;
c.gridy = 1;
c.weightx = 1;
c.weighty = 1;
c.gridwidth = 2;
c.gridheight = 2;
c.fill = GridBagConstraints.BOTH;
mainPanel.add(scroll, c);

c.gridx = 3;
c.gridy = 1;
c.gridwidth = 1;
c.gridheight = 2;
c.weightx = 1;
c.weighty = 1;
c.fill = GridBagConstraints.BOTH;
mainPanel.add(rightList, c);

this.getContentPane().add(mainPanel);
}

private void addData() {
runButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
runRegularExpression();
}
});
}

private void runRegularExpression()
{
Vector<String> v = ReExp.getResult(field.getText(),
area.getText());
((DefaultListModel)rightList.getModel()).clear();
for (int i = 0; i < v.size(); i++)
{
((DefaultListModel)rightList.getModel()).addElement(v.elementAt(i));
}
}

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

class ReExp
{
public ReExp()
{
}
static public Vector<String> getResult(String reg, String text)
{
Pattern p = Pattern.compile(reg);
if (p == null)
{
JOptionPane.showMessageDialog(null, "Error! Error!");
return null;
}
Matcher m = p.matcher(text);
Vector<String> v = new Vector<String>();
while (m.find())
{
v.add(m.group());
}
return v;
}
}


Regular Expressiton のテストツッル。

説明:

 

ボタン実行をクリックする後で、Sourceの内容のプロセスする結果はMatchesには表示します。

chick the 実行 button, the processed result of Source border shows in Matches border.

单击 実行 按钮后,source的内容显示在Matches中。

标签:java,import,private,Regular,swing,new,Expression,javax
From: https://blog.51cto.com/u_15929756/5988622

相关文章

  • Java线程生命周期
    java.lang.Thread类包含一个静态枚举,它定义了它的潜在状态。在任何给定的时间点内,线程只能处于以下状态之一:NEW–一个新创建的线程,尚未开始执行RUNNABLE–正在运行......
  • 第五阶段:Java Web 核心技术
    认清现实,放弃幻想。(特此感谢动力节点老杜分享出来的学习路线)5.第五阶段:JavaWeb核心技术5.1Tomcat与HTTP5.1.1学习目标1.掌握Tomcat服务器搭建2......
  • java spring jar包下载
    想学习一下javaspring,真是不知道怎么来着手。在网上查了一下eclipse里建spring工程的方法:1、创建Java项目转到 文件菜单- 新建- 项目- Java项目。输入项目名称,例如......
  • self hosted private support chat software use JavaScript remove HTML tags
    ThemainreasonforremovingHTMLtagsinonlinecustomerservicesystemsistopreventmalicioususersfromattackingthewebsiteorotherusersbyinputting......
  • 在线客服系统中javascript 源码实现除去html标签
    在线客服系统中除去HTML标签的主要原因是为了防止恶意用户通过输入恶意的HTML代码来攻击网站或其他用户。例如,如果你不过滤用户输入的HTML,一个恶意用户可能会输入下面这段......
  • Java 合并PDF文件
    这篇文章主要介绍如何在Java应用程序中实现将多个PDF文件合并为一个PDF的功能。使用组件:Spire.PDFforJava使用以下代码前,需要下载​​Spire.PDFforJava​​包并解压,然后......
  • Java 在Word中添加数学公式(Latex/MathML)
    本文介绍通过Java程序在Word文档中添加数学公式的方法。添加时,可添加latex数学公式或者MathML数学公式。详细内容见下文。1.程序环境Word测试文档:.docx2013Wordjar包:free......
  • Java 给PDF文档设置背景颜色和背景图片
    如题,这篇文章主要介绍如何在Java应用程序中给PDF文档设置背景颜色和背景图片。使用组件:Spire.PDFforJava​​下载Spire.PDFforJAVA包​​并解压缩,然后从lib文件夹下导入......
  • Java 拆分PDF文档
    这篇文章主要介绍以下两种拆分方式:将一个PDF文档快速拆分为多个PDF(每个PDF包含1页)根据指定页码范围,将一个PDF文档拆分为2个或多个PDF(每个PDF可以包含不同的页数)使用组件:Spir......
  • Java 在PPT中添加文本、图片超链接
    本文介绍通过Java程序在PPT幻灯片中添加超链接的方法,可以给文本或者图片设置超链接,设置超链接时,可设置包括网页链接、邮件地址链接、幻灯片跳转链接等不同指向对象的链接。......