import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
// Autor: João Matheus Santos Assis
public class CodigoFonte
extends JFrame{
private JToolBar Barra_Ferramenta =
new JToolBar();
private JTextField Texto =
new JTextField();
private JButton Button_Atualizar =
new JButton(
"Atualizar");
private JTextArea Imprimindo_CodigoFonte =
new JTextArea();
private JPopupMenu Botão_Esquerdo =
new JPopupMenu();
private JMenuItem Popup_MenuItem_Copiar =
new JMenuItem(
"Copiar");
private JMenuItem Popup_MenuItem_SelecionarTudo =
new JMenuItem(
"Selecionar tudo");
public CodigoFonte(){
super(
"Codigo-Fonte");
Barra_Ferramenta.
add(Texto);
Barra_Ferramenta.
add(Button_Atualizar);
add(BorderLayout.NORTH, Barra_Ferramenta);
Botão_Esquerdo.
add(Popup_MenuItem_Copiar);
Botão_Esquerdo.
addSeparator();
Botão_Esquerdo.
add(Popup_MenuItem_SelecionarTudo);
// Ativa a quebra automática de linha
Imprimindo_CodigoFonte.
setLineWrap(
true);
/* Desativando edição do arquivo (ou seja, o usuário fica
impossibilitado de apagar, por exemplo parte do código-fonte)*/
Imprimindo_CodigoFonte.
setEditable(
false);
/* Adicionando o JTextArea na janela e interando a ele a
barra de rolagem (JScrollPane)*/
add(
new JScrollPane(Imprimindo_CodigoFonte), BorderLayout.CENTER);
// Eventos com o botão esquerdo de mouse
Imprimindo_CodigoFonte.
addMouseListener(
new MouseAdapter(){
public void mouseReleased(MouseEvent event){
if (event.
isPopupTrigger())
Botão_Esquerdo.
show(event.
getComponent(), event.
getX(), event.
getY());
}
});
Button_Atualizar.
addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
// Deixando em branco o JTextArea
Imprimindo_CodigoFonte.
setText(
"");
URL Pagina =
null;
try {
/* É atribuido a Página o endereço digitado
pelo usuário no JTextField(Texto)*/
Pagina =
new URL(Texto.
getText());
}
catch (MalformedURLException ex){
ex.
printStackTrace();
}
// Conectando com a URL
URLConnection Conectando =
null;
try {
Conectando = Pagina.
openConnection();
}
catch (IOException ex){
ex.
printStackTrace();
}
BufferedReader Dentro =
null;
try {
Dentro =
new BufferedReader(
new InputStreamReader(Conectando.
getInputStream()));
}
catch (IOException ex){
ex.
printStackTrace();
}
// Parte responsável por imprimir o Codigo-Fonte do endereço digitado pelo usuário
String Linha;
try {
while ((Linha = Dentro.
readLine()) !=
null)
Imprimindo_CodigoFonte.
setText(Imprimindo_CodigoFonte.
getText()+Linha+
"\n");
}
catch (IOException ex){
ex.
printStackTrace();
}
// Fechando a conecção
try {
Dentro.
close();
}
catch (IOException ex){
ex.
printStackTrace();
}
}
});
// Eventos com o botão esquerdo do mouse
ButtonHandler Handler =
new ButtonHandler();
Popup_MenuItem_Copiar.
addActionListener(Handler);
Popup_MenuItem_SelecionarTudo.
addActionListener(Handler);
// Propriedades do JFrame
this.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.
setVisible(
true);
this.
setSize(
700,
500);
// Localizando o programa no monitor
this.
setLocation(
50,
50);
}
private class ButtonHandler
implements ActionListener{
public void actionPerformed(ActionEvent event){
if (event.
getSource() == Popup_MenuItem_Copiar)
// Copia todo texto selecionado
Imprimindo_CodigoFonte.
copy();
if (event.
getSource() == Popup_MenuItem_SelecionarTudo)
// Seleciona todo o texto
Imprimindo_CodigoFonte.
selectAll();
}
}
public static void main(String [] args){
new CodigoFonte();
}
}
Palavras-Chaves: Codigo Fonte-URL-JTextField-JTextArea-JPopupMenu-Copiar-SelecionarTudo-Java.
Artigos relacionados em Java:
|
Feito no NetBeans-5.5.1 | Executável |