我有一本即时编码的字典。它现在在准系统中。这是我的第一个摇摆项目。包含main方法的类如下:
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class TestDemo
{
public static void main (String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
// TODO Auto-generated method stub
JFrame frm = new MainFrame("First Window");
frm.setVisible(true);
frm.setSize(500, 500);
frm.setLocationRelativeTo(null);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
});
}
}
然后我有这个类创建你看到的初始屏幕: import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
public class MainFrame extends JFrame{
public MainFrame(String title) {
// TODO Auto-generated constructor stub
super(title);
// Set the Layout Manager
setLayout(new BorderLayout());
// Create Swing components
//Text Fields
JButton btn = new JButton("Continue");
JRadioButton addWord = new JRadioButton("Add Word to the Dictionary");
// Add Swing Components to content pane
Container c = getContentPane();
c.add(btn, BorderLayout.SOUTH);
c.add(addWord, BorderLayout.CENTER);
//Add behaviour of Buttons.
btn.addActionListener(new ActionListener(){
// This is when your button is clicked
@Override
public void actionPerformed(ActionEvent e) {
if(addWord.isSelected()==true){
new addWordFrame();
}
}
});
}
}
到目前为止只有一个按钮,即在字典中添加一个单词。如果按下它,它会打开一个新窗口。新窗口将有一个文本输入字段,要求输入单词。一旦检查到该单词是有效字符串,它就会询问定义。如果单词不是有效字符串,则不允许您在“定义”字段中输入文本。这就是我到目前为止所做的:
import javax.swing.JFrame;
public class addWordFrame extends JFrame{
public addWordFrame(){
super("Adding a word to the dictionary");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
如果输入单词,我怎么能这样做,在输入有效字符串之前,它不会让你输入定义?附:我希望word选项是jtextfield,定义是jtextarea。我希望这是可读的即时冲动所以它的草率但我只是想练习。
答案 0 :(得分:-1)
它是通过keyTyped方法验证textField内容的简单示例。该示例使textArea首先禁用文本区域。但是当在textField中键入的单词将具有> 2然后将启用文本区域。它是解决您问题的最简单方法之一。我有一个建议,你不要使用很多JFrames将主窗口作为JFrame,但要让其他窗口使用JDialog类。
public class AddWordWindow extends JFrame{
public AddWordWindow(){
getContentPane().setLayout(null);
JTextPane wordText = new JTextPane();
wordText.setBounds(10, 21, 82, 20);
getContentPane().add(wordText);
JTextArea descriptionText = new JTextArea();
descriptionText.setBounds(10, 66, 143, 57);
getContentPane().add(descriptionText);
descriptionText.setEnabled(false);
wordText.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if(wordText.getText().length()>2){
descriptionText.setEnabled(true);
}
}
});
}
}