Java Netbeans教程:为twitter创建图形客户端
我正在练习为twitter创建图形客户端的netbeans教程,可在以下链接找到:我正在使用netbeans 7.1 下面是教程的代码片段Java Netbeans教程:为twitter创建图形客户端,java,swing,netbeans-7,Java,Swing,Netbeans 7,我正在练习为twitter创建图形客户端的netbeans教程,可在以下链接找到:我正在使用netbeans 7.1 下面是教程的代码片段 public class TwitterFrame extends javax.swing.JFrame { /** * Creates new form TwitterFrame */ public TwitterFrame() { initCompone
public class TwitterFrame extends javax.swing.JFrame {
/**
* Creates new form TwitterFrame
*/
public TwitterFrame() {
initComponents();
try {
initUserInfo();
} catch (IOException ex) {
Logger.getLogger(TwitterFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void initUserInfo() throws MalformedURLException, IOException {
//Create an instance of the internal service class
client = new Twitter_OAuth_user_timeline__format_JerseyClient("xml");
//Log in, get tokens, and append the tokens to the consumer and secret
//keys
client.login();
client.initOAuth();
//Call getUserTimeline, get a list of statuses, pass the most recent
//status as a StatusType object, and display the text of that object
//in the JTextField
Statuses statuses = client.getUserTimeline(Statuses.class, null, null, null, "1");
twitter.twitteroauth.twitterresponse.StatusType st = statuses.getStatus().get(0);
jTextField1.setText(st.getText().trim());
//Get a UserType object from the StatusType object, get the URL of that
//user's icon, and display that icon in the JLabel
UserType user = st.getUser();
String iconSrc = user.getProfileImageUrl();
URL iconUrl = new URL(iconSrc);
ImageIcon icon = new ImageIcon(iconUrl, user.getScreenName());
jLabel1.setIcon(icon);
}
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TwitterFrame().setVisible(true);
}
});
}
公共类TwitterFrame扩展了javax.swing.JFrame{
/**
*创建新表单TwitterFrame
*/
公共TwitterFrame(){
初始化组件();
试一试{
initUserInfo();
}捕获(IOEX异常){
Logger.getLogger(TwitterFrame.class.getName()).log(Level.SEVERE,null,ex);
}
}
private void initUserInfo()引发MalformedURLException,IOException{
//创建内部服务类的实例
client=newtwitter\u OAuth\u user\u timeline\u格式\u JerseyClient(“xml”);
//登录,获取令牌,并将令牌附加到使用者和密码
//钥匙
client.login();
client.initOAuth();
//调用getUserTimeline,获取状态列表,传递最近的
//状态为StatusType对象,并显示该对象的文本
//在JTextField中
Statuses Statuses=client.getUserTimeline(Statuses.class,null,null,null,“1”);
twitter.twitteroauth.twitterresponse.StatusType st=statuses.getStatus().get(0);
jTextField1.setText(st.getText().trim());
//从StatusType对象获取UserType对象,获取该对象的URL
//用户的图标,并在JLabel中显示该图标
UserType user=st.getUser();
字符串ICONRC=user.getProfileImageUrl();
URL iconUrl=新URL(ICONRC);
ImageIcon图标=新的ImageIcon(iconUrl,user.getScreenName());
jLabel1.setIcon(图标);
}
公共静态void main(字符串参数[]){
/*
*设置Nimbus的外观和感觉
*/
//
/*
*如果Nimbus(在JavaSE6中引入)不可用,请使用
*默认外观。有关详细信息,请参阅
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
试一试{
for(javax.swing.UIManager.LookAndFeelInfo:javax.swing.UIManager.getInstalledLookAndFeels()){
if(“Nimbus”.equals(info.getName())){
setLookAndFeel(info.getClassName());
打破
}
}
}捕获(ClassNotFoundException ex){
getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}catch(实例化异常){
getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}捕获(非法访问例外){
getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}catch(javax.swing.UnsupportedLookAndFeelException ex){
getLogger(TwitterFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
}
//
/*
*创建并显示表单
*/
invokeLater(new Runnable()){
公开募捐{
新建TwitterFrame().setVisible(true);
}
});
}
但是,当我在netbeans上运行代码时,我得到了以下错误
run:
Exception in thread "AWT-EventQueue-0" com.sun.jersey.api.client.UniformInterfaceException: GET http://twitter.com/oauth/request_token returned a response status of 301 Moved Permanently
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:676)
at com.sun.jersey.api.client.WebResource.get(WebResource.java:191)
at twitterclient.TwitterFrame$Twitter_OAuth_user_timeline__format_JerseyClient.getOAuthRequestToken(TwitterFrame.java:268)
at twitterclient.TwitterFrame$Twitter_OAuth_user_timeline__format_JerseyClient.login(TwitterFrame.java:255)
at twitterclient.TwitterFrame.initUserInfo(TwitterFrame.java:123)
at twitterclient.TwitterFrame.<init>(TwitterFrame.java:37)
at twitterclient.TwitterFrame$2.run(TwitterFrame.java:177)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
运行:
线程“AWT-EventQueue-0”com.sun.jersey.api.client.UniformInterfaceException:获取http://twitter.com/oauth/request_token 返回301永久移动的响应状态
位于com.sun.jersey.api.client.WebResource.handle(WebResource.java:676)
位于com.sun.jersey.api.client.WebResource.get(WebResource.java:191)
twitterclient.TwitterFrame$Twitter\u OAuth\u user\u timeline\u format\u JerseyClient.getOAuthRequestToken(TwitterFrame.java:268)
在twitterclient.TwitterFrame$Twitter\u OAuth\u user\u timeline\u format\u JerseyClient.login(TwitterFrame.java:255)
位于twitterclient.TwitterFrame.initUserInfo(TwitterFrame.java:123)
位于twitterclient.TwitterFrame。(TwitterFrame.java:37)
twitterclient.TwitterFrame$2.run(TwitterFrame.java:177)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
在java.awt.EventQueue.access$000(EventQueue.java:101)
在java.awt.EventQueue$3.run(EventQueue.java:666)
在java.awt.EventQueue$3.run(EventQueue.java:664)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
位于java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:128)
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:117)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
任何对如何运行教程有建议的人。
谢谢。我想自从编写Netbeans教程以来,URL已经改变了,现在是
https://api.twitter.com/oauth/request_token
根据
异常指示您调用:http://twitter.com/oauth/request_token
您错过了api。