[java]Regular Expression Testor

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,String,null,Class,import,scroll)