【问题标题】:create your own swing component创建自己的摇摆组件
【发布时间】:2014-04-06 08:36:09
【问题描述】:

需要一个允许在给定段落中找到给定单词的软件组件,每当组件在段落中找到所需单词时,组件将调用所有附加到它的侦听器,它已找到所需单词。 该组件必须从基于 Swing UI 的应用程序中使用,该应用程序向用户显示一个文本字段以获取单词和一个文本区域以供通过。必须有一个标签来更新其值,显示在给定段落中找到给定单词的次数。

这是我的代码,它是显示 gui,但计数字段没有更改或设置。

import java.awt.EventQueue;

public class compomentex implements ActionListener{

private JFrame frame;
private JTextField textField;
private JTextField textField_1;
private JTextArea textArea;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                compomentex window = new compomentex();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public interface wordsearcherinterface
{
    public void wordsearch();
}
public class wordsearcher implements wordsearcherinterface
{
    public String word;
    public String paragraph;

    public void addwordsearch(wordsearcherinterface obj)
    {
        obj.wordsearch();
    }

    public void wordsearch()
    {
        //if(event.getSource()==Check)
        String word;
        String Words;
        String [] Words2;
        int disp=0;
         word=textField.getText();

        Words=textArea.getText();
        Words2=Words.split(" ");

        for(int i=0;i<Words2.length;i++)
        {
            if(Words2[i].equals(word))
            {
                    disp++;


            }
        }

        String show;
        show=disp+""; 
        textField_1.setText(show);
        if(disp==0)
        {
            JOptionPane.showMessageDialog(null, "The Word is not present int Passage");
        }


    }

}

 * Create the application.
public compomentex() {
    initialize();

}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    JLabel lblWord = new JLabel("WORD");
    lblWord.setBounds(29, 81, 46, 14);
    frame.getContentPane().add(lblWord);

    textField = new JTextField();
    textField.setBounds(121, 78, 86, 20);
    frame.getContentPane().add(textField);
    textField.setColumns(10);

    JLabel lblPassage = new JLabel("PASSAGE");
    lblPassage.setBounds(29, 143, 46, 14);
    frame.getContentPane().add(lblPassage);

    JTextArea textArea = new JTextArea();
    textArea.setBounds(97, 161, 196, 90);
    frame.getContentPane().add(textArea);

    JButton btnCheck = new JButton("CHECK");
    btnCheck.setBounds(326, 213, 98, 23);
    frame.getContentPane().add(btnCheck);



    JLabel lblSeeker = new JLabel("SEEKER");
    lblSeeker.setBounds(161, 11, 46, 14);
    frame.getContentPane().add(lblSeeker);

    JLabel lblCount = new JLabel("COUNT");
    lblCount.setBounds(349, 81, 46, 14);
    frame.getContentPane().add(lblCount);

    textField_1 = new JTextField();
    textField_1.setBounds(325, 106, 86, 20);
    frame.getContentPane().add(textField_1);
    textField_1.setColumns(10);

}

@Override
public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub

}
}

提前致谢

【问题讨论】:

  • 第一个实例变量textArea 未初始化。
  • 第二个ActionListener 没有添加到check 按钮上。

标签: java swing awt custom-component


【解决方案1】:

您的代码中有很多问题。我在下面提到了更正的代码。请更正。

首先 - actionPerformed 方法为空。

@Override
public void actionPerformed(ActionEvent arg0) {
    new wordsearcher().wordsearch();
}

第二个 - 实例变量textArea 未初始化。

textArea = new JTextArea();

第三个 - ActionListener 未添加到按钮 btnCheck

btnCheck.addActionListener(this);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多