首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让JEditorPane正常工作

让JEditorPane正常工作
EN

Stack Overflow用户
提问于 2014-06-14 07:04:48
回答 1查看 88关注 0票数 1

好吧,这就是我的问题。我有以下代码:

代码语言:javascript
运行
复制
import java.awt.*;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;

import javax.swing.*;

public class SongTapper extends JFrame {

    Date d;
    boolean isFirstTap = true;
    static JTapper tap;
    URL url;

    JLabel label = new JLabel();
    JEditorPane pane = new JEditorPane();
    JScrollPane scroll;
    JFrame frame;

    public void show() {
//      d = new Date();
//      Date d2 = new Date();
//      
//      double seconds = ((d.getTime() - d2.getTime()) /1000);
//      
//      System.out.println(seconds);

        frame = new JFrame();
        tap = new JTapper();
        tap.setEditable(false);
        tap.setText("Tap out a song using the Space bar");

        tap.addTapListener(new TapListener() {

            String count = "";

            @Override
            public void tapPerformed() {

                if(isFirstTap){
                    d = new Date();
                    isFirstTap = false;
                }else{
                    Date tapping = new Date();

                    double seconds = (((double)tapping.getTime() - (double)d.getTime()) / 1000.0);

                    String total = Double.toString(seconds) + "-0-1/";

                    System.out.println(count += total);


                }

            }

            @Override
            public void tappingCompleted() {
                tap.setText("Tapping completed");
                String fullUrl = "http://www.musipedia.org/result.html?sourceid=melody-url&tx_mpsearch_pi1%5bsubmit_button%5d=Search&tx_mpsearch_pi1%5bpc%5d=hum%20" + 
                        count +"&filtertext=&coll=r&onlymatchfrom=0 ";
                try {
                    url = new URL(fullUrl);
                    pane.setPage(url);
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                frame = new JFrame();
                 scroll = new JScrollPane(pane);
                frame.getContentPane().add(scroll);
                frame.pack();

            }

        });

        frame.setTitle("Song Tapper");

        //frame.getContentPane().add(scroll);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(new Dimension(250, 100));
        frame.getContentPane().add(tap);

        frame.pack();
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
    }

}

代码语言:javascript
运行
复制
import java.awt.Component;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Observable;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JTapper extends JTextField implements KeyListener {

JLabel label = new JLabel("Tap out a song using the Space bar");
int count;
List<TapListener> taps = new ArrayList<TapListener>();

public JTapper(){

    this.addKeyListener(this);
}

public void addTapListener(TapListener tapListener){
    taps.add(tapListener);
}

@Override
public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void keyPressed(KeyEvent e) {


}

@Override
public void keyReleased(KeyEvent e) {
    if(e.getKeyCode() == 32){
        for(TapListener tap : taps){
            tap.tapPerformed();
        }
    }
    else if(e.getKeyCode() == 10){
        for(TapListener tap : taps){
            tap.tappingCompleted();
        }
    }
}

}

我正在尝试做的是用空格键点击的时间来替换url的中间部分,但是我很难让它拉出包含所需网站的JEditorPane。

有没有人知道如何修复它,让它显示我请求的网页?

如果您需要更多信息,请让我知道。

EN

回答 1

Stack Overflow用户

发布于 2014-06-14 07:24:35

Url部分会很好,也很简单:

代码语言:javascript
运行
复制
String part = JTapper.getTapNumber()+"";//if it exists
//if it doesn't exist just make it
${name_of_JEditorPane}.setPage(new URL("http://www.example.com/"+part+"ending"));

要启动JEditorPane,您需要制作一个包含窗格的JFrame,但我必须警告您!您不应该使用JEditorPAnes来显示网页,因为它们只能使用基本的html,而不能运行javascript!

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

https://stackoverflow.com/questions/24214901

复制
相关文章

相似问题

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