首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTextField问题

JTextField问题
EN

Stack Overflow用户
提问于 2011-04-02 21:19:00
回答 2查看 659关注 0票数 0
代码语言:javascript
复制
import org.jsoup.Jsoup;


@SuppressWarnings("unused")
public class SimpleWebCrawler extends JFrame {

    JTextField yourInputField = new JTextField(20);
    static JTextArea _resultArea = new JTextArea(200, 200);
    JScrollPane scrollingArea = new JScrollPane(_resultArea);
    private final static String newline = "\n";



    public SimpleWebCrawler() throws MalformedURLException {


        _resultArea.setEditable(false);

        String word2 = yourInputField.getText();

        try {
            URL my_url = new URL("http://" + word2 + "/");
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    my_url.openStream()));
            String strTemp = "";
            while (null != (strTemp = br.readLine())) {
                _resultArea.append(strTemp + newline);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        _resultArea.append("\n");
        _resultArea.append("\n");
        _resultArea.append("\n");


        String url = "http://" + word2 + "/";
        print("Fetching %s...", url);

        try{
        Document doc = Jsoup.connect(url).get();
        Elements links = doc.select("a[href]");


        System.out.println("\n");

        BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\user\\fypworkspace\\FYP\\Link\\abc.txt"));
        _resultArea.append("\n");
        for (Element link : links) {
            print("  %s  ", link.attr("abs:href"), trim(link.text(), 35));

            bw.write(link.attr("abs:href"));
            bw.write(System.getProperty("line.separator"));
        }
        bw.flush();
        bw.close();
        } catch (IOException e1) {

        }
        JPanel content = new JPanel();
        content.setLayout(new BorderLayout());
        content.add(scrollingArea, BorderLayout.CENTER);
        content.add(yourInputField);

        this.setContentPane(content);
        this.setTitle("Crawled Links");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.pack();


        }

        private static void print(String msg, Object... args) {

            _resultArea.append(String.format(msg, args) +newline);
        }

        private static String trim(String s, int width) {
            if (s.length() > width)
                return s.substring(0, width - 1) + ".";
            else
                return s;
        }

        //.. Get the content pane, set layout, add to center




    public static void main(String[] args) throws IOException {



        JFrame win = new SimpleWebCrawler();
        win.setVisible(true);

    }
}

我正在尝试创建一个JTextField来接收来自用户的输入。我已经创建了一个JTextField实例并将其添加到JFrame中。但是,此代码不起作用。介意指出我的错误吗?它应该可以工作,但是我找不到问题所在。我还漏掉了什么吗?

JTextField的代码如下:

代码语言:javascript
复制
JTextField yourInputField = new JTextField(20);
String word2 = yourInputField.getText();
content.add(yourInputField);

此行显示了IllegalArgumentException的错误。

代码语言:javascript
复制
my_url.openStream()

我希望看到弹出一个接收输入的JTextField,这是一个随机的网址,代码将处理该网址。很抱歉,我的问题显示得不好。我对问答论坛的编程不是很熟悉。

EN

回答 2

Stack Overflow用户

发布于 2011-04-02 21:27:44

在哪里读取来自文本字段的输入?我只在构造函数中看到过一次,但是由于您是从一个新的空文本域中读取文本,所以您不会通过该调用从用户那里获得任何输入。

如果您希望用户能够将数据输入到文本字段中,然后对输入进行处理,则需要使用事件驱动编程和操作侦听器等。这将允许程序的某些部分在用户执行某些操作时运行,如文本输入。

票数 2
EN

Stack Overflow用户

发布于 2011-04-02 21:28:49

这里的一个问题是,您没有正确指定要添加yourInputField的位置。例如,使用

代码语言:javascript
复制
  content.add(yourInputField, BorderLayout.SOUTH);

相反,

代码语言:javascript
复制
  content.add(yourInputField);

如果您没有指定值,则BorderLayout默认情况下会添加到中心位置,因此您看不到滚动区域。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5523386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档