package ruc.irm.ui;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import ruc.irm.similarity.phrase.PhraseSimilarity;
/**
* 短语相似度的调用演示界面
* @author <a href="mailto:iamxiatian@gmail.com">夏天</a>
* @organization 中国人民大学信息资源管理学院 知识工程实验室
*/
public class PhraseSimilarityUI {
/**
* 短语相似度的演示面板
*
* @return
*/
public static JPanel createPanel() {
// 声明总的大面板, fullPanel包括一个NorthPanel和一个centerPanel
JPanel fullPanel = new JPanel();
fullPanel.setLayout(new BorderLayout());
JPanel northPanel = new JPanel();
fullPanel.add(northPanel, "North");
// centerPanel包括了一个文本框
JPanel centerPanel = new JPanel();
fullPanel.add(centerPanel, "Center");
centerPanel.setLayout(new BorderLayout());
final JTextArea result = new JTextArea();
// result.setFont(new Font("宋体", Font.PLAIN, 16));
result.setLineWrap(true);
JScrollPane centerScrollPane = new JScrollPane(result);
centerPanel.add(centerScrollPane, "Center");
northPanel.setLayout(new GridLayout(1, 1));
// northPanel.add(createWordPanel());
// northPanel.add(createCilinPanel());
// 以下加入northPanel中的第一个面板
final JTextField field1 = new JTextField("");
final JTextField field2 = new JTextField("");
field1.setColumns(50);
field2.setColumns(50);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new GridLayout(3, 1));
JPanel linePanel = new JPanel();
linePanel.add(new JLabel("短语1:"));
linePanel.add(field1);
mainPanel.add(linePanel);
linePanel = new JPanel();
linePanel.add(new JLabel("短语2:"));
linePanel.add(field2);
mainPanel.add(linePanel);
linePanel = new JPanel();
JButton goButton = new JButton("计算相似度");
linePanel.add(goButton);
mainPanel.add(linePanel);
goButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String phrase1 = field1.getText();
String phrase2 = field2.getText();
String text = "[" + phrase1 + "]与[" + phrase2 + "]的相似度为:";
text = text + new PhraseSimilarity().getSimilarity(phrase1, phrase2);
// text = text + "\n\n" + result.getText();
result.setText(text);
}
});
mainPanel.setBorder(BorderFactory.createEtchedBorder());
northPanel.add(mainPanel);
return fullPanel;
}
}