前言:Java编程,语言愈广,本节我将教大家如何使用Java语言写一个图形化的网站源码获取软件,下图就是预览图。

0x001 页面布局

分析页面,我们可以分享程序中有一个输入网站的文本框,还有获取按钮,以及下面的滚动栏还有显示内容的文本区域

所以我们需要一个JTextField、JButton、JTextArea、JScrollPane

然后就是自行调节大小行数列数这些问题,在次之前我们还需要做一件事(固定JFrame边框),通过如下代码即可实现

frame.setResizable(false);

至于调节大小这些我就不多做分析,直接来看看我写的吧!

JFrame frame=new JFrame("获取源码");
		FlowLayout flowLayout=new FlowLayout(0, 5, 5);
		JPanel panel=new JPanel();
		JTextArea area=new JTextArea("源码");
		area.setColumns(41);
		area.setRows(23);
		area.setBorder (BorderFactory.createEmptyBorder (1,1,1,5));
		area.setTabSize(10);
		
		area.setLineWrap(true);
		JTextField textField=new JTextField(30);
		JButton button=new JButton("获取");
		panel.add(textField);
		panel.setLayout(flowLayout);
		panel.add(button);
		panel.add(new JScrollPane(area));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		frame.setBounds(200, 200,500, 500);
		frame.getContentPane().add(panel);
		frame.setResizable(false);

这就是我们的布局,关于布局方面,大家可以看看这篇文章(Java编程路 – 利用Java编写图形化的数据库连接工具)

0x002 功能实现

我们先分析一下程序执行流程!

该程序通过用户点获取这个button实现将JTextfield中的URL源码显示到下面的文本框中!

所以我们需要为获取按钮添加事件实现获取源码!

关于获取源码我这特意写了一个类,该类下的re方法实现插入URL,返回网页源码!

public static class ws extends main{
		String string=null;
  public String re(String url) throws MalformedURLException {
	  URL url2=new URL(url);
	  String line=null;
	  try {
		URLConnection connection=url2.openConnection();
		InputStream sInputStream=connection.getInputStream();
		InputStreamReader stream=new InputStreamReader(sInputStream,"utf-8");
		BufferedReader bufferedReader=new BufferedReader(stream);
		 while((line=bufferedReader.readLine())!=null) {
			 string=string+line;
		}
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return string;
  }
  }

这里的string是我们最终返回的源码,由于Try -catch,所以我们在外部定义这个变量!

下一步就是添加button的按钮事件,请看本人写的

button.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				ws s=new ws();
				try {
			  area.setText(s.re(textField.getText()));
				} catch (MalformedURLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
			}
		});

利用addActionListener添加事件,在事件中我们用new关键字新建一个事件,在事件我们通过创建一个ws类的对象s,通过s调用re这个方法获取网页源码,下一步就是将获取到的源码设置area中显示的内容,通过如下代码即可实现。

.setText=源码

好了之后我们就可以去测试了。

下面打包给各位在下的全部源码

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class web extends JFrame {
	public web() {
	}
	public static void main(String[] args) {
		JFrame frame=new JFrame("获取源码");
		FlowLayout flowLayout=new FlowLayout(0, 5, 5);
		JPanel panel=new JPanel();
		JTextArea area=new JTextArea("源码");
		area.setColumns(41);
		area.setRows(23);
		area.setBorder (BorderFactory.createEmptyBorder (1,1,1,5));
		area.setTabSize(10);
		
		area.setLineWrap(true);
		JTextField textField=new JTextField(30);
		JButton button=new JButton("获取");
		button.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				ws s=new ws();
				try {
			  area.setText(s.re(textField.getText()));
				} catch (MalformedURLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
			}
		});
		panel.add(textField);
		panel.setLayout(flowLayout);
		panel.add(button);
		panel.add(new JScrollPane(area));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		frame.setBounds(200, 200,500, 500);
		frame.getContentPane().add(panel);
		frame.setResizable(false);
	}
	public static class ws extends main{
		String string=null;
  public String re(String url) throws MalformedURLException {
	  URL url2=new URL(url);
	  String line=null;
	  try {
		URLConnection connection=url2.openConnection();
		InputStream sInputStream=connection.getInputStream();
		InputStreamReader stream=new InputStreamReader(sInputStream,"utf-8");
		BufferedReader bufferedReader=new BufferedReader(stream);
		 while((line=bufferedReader.readLine())!=null) {
			 string=string+line;
		}
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return string;
  }
  }
}

需要的朋友自己Copy研究吧!

0x003 结语

最后,给各位学习的朋友几句掏心窝子的话,学习重在理解,理解之后更需要实践!

希望各位长期光临本站,关于教程中不懂的地方可以联系本人QQ(99746460),或者在评论区留言。