1
자, 여기 내 문제가 있습니다. 나는 다음과 같은 코드가 있습니다 :JEditorPane 작동시키기
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을 가져 오는 데 문제가 발생했습니다.
누군가 내가 요청하는 웹 페이지를 표시하도록 수정하는 방법에 대한 단서가 있습니까?
더 이상 필요한 정보가 있으면 알려 주시기 바랍니다.
시작하려면 텍스트 구성 요소와 함께 'KeyListener'를 사용하지 말고'DocumentListener' – MadProgrammer