mport java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class InputDialog extends JDialog {
private JButton btnAdd;
private JButton btnClose;
private JTextField tfInput;
private DataSet owner;
public InputDialog(DataSet owner) {
super(owner, "input", true);
this.owner = owner;
btnAdd = new JButton("Add");
btnClose = new JButton("Close");
tfInput = new JTextField(20);
JPanel pnlSouth = new JPanel(new GridLayout(1, 2));
pnlSouth.add(btnAdd);
pnlSouth.add(btnClose);
JPanel pnlCenter = new JPanel();
pnlCenter.add(tfInput);
add(pnlSouth, BorderLayout.SOUTH);
add(pnlCenter, BorderLayout.CENTER);
ActionListener aListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == btnClose) {
dispose();
} else {
add();
}
}
};
btnAdd.addActionListener(aListener);
btnClose.addActionListener(aListener);
setSize(250, 100);
setLocationRelativeTo(owner);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
}
private void add() {
String word = tfInput.getText();
if(owner.add(word)) {
dispose();
} else {
JOptionPane.showMessageDialog(
this,
"이미 존재하는 단어입니다.",
"경고",
JOptionPane.WARNING_MESSAGE
);
tfInput.requestFocus();
tfInput.selectAll();
}
}
}
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class DataSet extends JFrame {
private JTextArea taList;
private JButton btnAdd;
private ArrayList<String> words;
public DataSet() {
words = new ArrayList<String>();
taList = new JTextArea();
taList.setEditable(false);
btnAdd = new JButton("Add");
add(new JScrollPane(taList), BorderLayout.CENTER);
add(btnAdd, BorderLayout.SOUTH);
btnAdd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
new InputDialog(DataSet.this);
}
});
setTitle("DataSet");
setSize(300, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public boolean add(String word) {
boolean flag = false;
if(!words.contains(word)) {
words.add(word);
taList.append(word + "\n");
flag = true;
}
return flag;
}
public static void main(String[] args) {
new DataSet();
}
}