好吧,这就是我的问题。我有以下代码:
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);
}
}和
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。
有没有人知道如何修复它,让它显示我请求的网页?
如果您需要更多信息,请让我知道。
发布于 2014-06-14 07:24:35
Url部分会很好,也很简单:
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!
https://stackoverflow.com/questions/24214901
复制相似问题