【问题标题】:Reload a web page in a java application在 Java 应用程序中重新加载网页
【发布时间】:2014-09-08 23:02:43
【问题描述】:

我创建了一个 java 应用程序,现在我必须重新加载一个网页。我用这段代码打开网页:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.IOException;
import javax.swing.JProgressBar;
import java.io.*;
import java.util.*;

public class views extends JFrame {

private JPanel contentPane;
private JTextField txtHttpswwwyoutubecom;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                views frame = new views();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public views() {
    setTitle("Test");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 707, 485);
    setResizable(false);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JLabel lblPutTheUrl = new JLabel("Put the url of the video");
    lblPutTheUrl.setFont(new Font("Tahoma", Font.PLAIN, 15));
    lblPutTheUrl.setBounds(40, 93, 159, 24);
    contentPane.add(lblPutTheUrl);

    JLabel lblSelectTheNumber = new JLabel("Select the number");
    lblSelectTheNumber.setFont(new Font("Tahoma", Font.PLAIN, 15));
    lblSelectTheNumber.setBounds(40, 200, 203, 24);
    contentPane.add(lblSelectTheNumber);

    final JComboBox comboBox = new JComboBox();
    comboBox.setModel(new DefaultComboBoxModel(new String[] {"5", "10", "15", "20"}));
    comboBox.setFont(new Font("Tahoma", Font.PLAIN, 15));
    comboBox.setBounds(322, 202, 121, 20);
    contentPane.add(comboBox);

    txtHttpswwwyoutubecom = new JTextField();
    txtHttpswwwyoutubecom.setText("https://www.google.com/");
    txtHttpswwwyoutubecom.setFont(new Font("Tahoma", Font.PLAIN, 15));
    txtHttpswwwyoutubecom.setBounds(322, 93, 332, 24);
    contentPane.add(txtHttpswwwyoutubecom);
    txtHttpswwwyoutubecom.setColumns(10);

    JLabel lblPressOk = new JLabel("Press Ok ");
    lblPressOk.setFont(new Font("Tahoma", Font.PLAIN, 15));
    lblPressOk.setBounds(40, 298, 71, 24);
    contentPane.add(lblPressOk);

    JButton btnOk = new JButton("Ok");
    btnOk.addActionListener(new ActionListener() {
        private String views;
        private int intViews;

        public void actionPerformed(ActionEvent arg0) {

            //trasformare il numero delle views in una stringa
            views = comboBox.getSelectedItem().toString();
            //trasformo stringa in int
            intViews = Integer.parseInt(views);
            System.out.println(intViews);


            //campo url
            String urls = txtHttpswwwyoutubecom.getText();


            //apertura url
            int cont=0;
            int cont1=0;
            //cont=intViews;
        //System.out.println("cont");
        //System.out.println(intViews);


            /*
             try {
                Thread.sleep(millisecondi);
                    }
                        catch (Exception e) {} 
             */
        while(intViews>cont){

            cont++;
            cont1++;
            String URL = urls;
            //String URL = "https://www.google.com/";
            try {
                java.awt.Desktop.getDesktop().browse(java.net.URI.create(URL));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                //System.exit(0);

            }
            if(cont1==5){
                cont1=0;
                try {
                    Thread.sleep(5500);
                    }
                    catch (Exception e1) {}

            }

            }

        }
    });
    btnOk.setFont(new Font("Tahoma", Font.PLAIN, 15));
    btnOk.setBounds(322, 299, 121, 23);
    contentPane.add(btnOk);

    JLabel lblDevelopedByRiccardo = new JLabel("Developed by Riccardo Vecchiato");
    lblDevelopedByRiccardo.setFont(new Font("Tahoma", Font.PLAIN, 15));
    lblDevelopedByRiccardo.setBounds(464, 421, 237, 24);
    contentPane.add(lblDevelopedByRiccardo);

    JLabel lblAlpha = new JLabel("Alpha 1.0");
    lblAlpha.setBounds(10, 428, 46, 14);
    contentPane.add(lblAlpha);


}
}

每 5 秒我打开五个新网页。我使用以下代码打开该网页:

String URL = "https://www.google.com/";
try {
    java.awt.Desktop.getDesktop().browse(java.net.URI.create(URL));
} catch (IOException e) {
// TODO Auto-generated catch block
    e.printStackTrace();
}

有一个命令可以重新加载我使用此代码创建的所有网页?

【问题讨论】:

  • 编辑您的问题并添加有关您的问题的更多详细信息。

标签: java browser webpage reload


【解决方案1】:

不要不要使用Thread.sleep(),因为它会冻结您的 Swing 应用程序。

您应该使用javax.swing.Timer

有关更多信息和示例,请参阅 Java 教程 How to Use Swing TimersLesson: Concurrency in Swing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多