⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginframe.java

📁 google的gdata api包
💻 JAVA
字号:
/* Copyright (c) 2006 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package sample.spreadsheet.gui;import com.google.gdata.client.GoogleService.CaptchaRequiredException;import com.google.gdata.client.spreadsheet.SpreadsheetService;import com.google.gdata.util.AuthenticationException;import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.net.URL;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.SwingConstants;/** * A Swing window for logging in to Google Spreadsheets. * *  */public class LoginFrame extends JFrame {  /** The spreadsheet service. */  private SpreadsheetService service;  /** Field for entering username. */  private JTextField usernameField;  /** Field for entering password. */  private JPasswordField passwordField;  /** Image to display as a CAPTCHA (distorted letters to verify human). */  private JLabel captchaImage;  /** Place where user types the captcha answer. */  private JTextField captchaAnswerField;  /** Button to log in. */  private JButton submitButton;  /**   * The captcha token that is issued,   * null if there was no CAPTCHA challenge.   */  private String captchaToken = null;  /**   * Starts out the login window, for a particular service and   * feed root, with initial username and password (these can   * be blank strings).   */  public LoginFrame(SpreadsheetService service,      String username, String password) {    this.service = service;    initializeGui();    usernameField.setText(username);    passwordField.setText(password);  }  /**   * Try authenticating the user with the provided username and   * password.   */  private boolean authenticate(      String username, String password) {    try {      if (captchaToken == null) {        // No CAPTCHA challenge was presented.        // Proceed to the next step.        service.setUserCredentials(username, password);      } else {        // Use the CAPTCHA token and answer to help the        // authentication.        service.setUserCredentials(username, password, captchaToken,            captchaAnswerField.getText());      }      return true;    } catch (CaptchaRequiredException e) {      // Get the CAPTCHA token and display the image.      captchaToken = e.getCaptchaToken();      try {        captchaImage.setIcon(new ImageIcon(new URL(e.getCaptchaUrl())));        captchaAnswerField.setText("(Please write the above letters here)");      } catch (IOException ioe) {        captchaImage.setText("(Error parsing captcha image URL)");      }      return false;    } catch (AuthenticationException e) {      SpreadsheetApiDemo.showErrorBox(e);      return false;    }  }  /**   * Handles the submit button being pressed.   */  private void handleSubmitButton() {    String username = usernameField.getText();    String password = new String(passwordField.getPassword());    if (authenticate(username, password)) {      new ChooseSpreadsheetFrame(service);      dispose();    }  }  // ---- GUI code from here on down ----------------------------------------  /**   * Handles all clicks.   */  private class ActionHandler implements ActionListener {    public void actionPerformed(ActionEvent ae) {      if (ae.getSource() == submitButton) {        handleSubmitButton();      }    }  }  /**   * Initializes all the GUI widgets.   */  private void initializeGui() {    setTitle("Log in to Google Spreadsheets");    Container panel = getContentPane();    panel.setLayout(new BorderLayout());    JPanel topPanel = new JPanel();    topPanel.setLayout(new GridLayout(4, 1));    topPanel.add(new JLabel("Log in to Google Spreadsheets!"));    usernameField = new JTextField();    topPanel.add(usernameField);    passwordField = new JPasswordField();    topPanel.add(passwordField);    submitButton = new JButton("Log in!");    submitButton.addActionListener(new ActionHandler());    topPanel.add(submitButton);    panel.add(topPanel, BorderLayout.NORTH);    captchaImage = new JLabel("(A CAPTCHA may appear here)",        SwingConstants.CENTER);    panel.add(captchaImage, BorderLayout.CENTER);    captchaAnswerField = new JTextField();    captchaAnswerField.setText("(type captcha answer here)");    panel.add(captchaAnswerField, BorderLayout.SOUTH);    setSize(300, 240);    setVisible(true);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -