codice:
import java.net.*;
import java.io.*;
import javax.swing.JOptionPane;
import java.lang.ArrayIndexOutOfBoundsException;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.JLabel;
import javax.swing.table.*;
/*
* main.java
* Created on 11-ott-2009, 11.28.21
*/
/**
* @author
*/
public class main extends javax.swing.JFrame {
/** Creates new form main */
URL URLImmagine;
ImageIcon imgBandiera;
public main() {
//aggiunto da me per testare immagine in jlable1
try
{
URLImmagine = new URL("http://web1.trophymanager.com/flags/it.png");
imgBandiera = new ImageIcon(URLImmagine);
}
catch(MalformedURLException excImm)
{
JOptionPane.showMessageDialog(null, excImm.toString());
}
// fine aggiunto da me
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setIcon(imgBandiera);
jLabel1.setText("jLabel1");
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"Prova", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null}
},
new String [] {
"Nome", "Squadra", "Naz", "Alt", "Pes", "Ruo", "Rou", "Sti", "Stato", "Trasferimento", "For", "Res", "Vel", "Marl", "Con", "Imp", "Pos", "Pas", "Cro", "Tec", "Tes", "Fin", "C.P", "Cancella"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.Object.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.Float.class, java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.Object.class
};
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(jTable1);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(180);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(150);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(40);
jTable1.getColumnModel().getColumn(2).setCellEditor(new PanelEditor());
jTable1.getColumnModel().getColumn(2).setCellRenderer(new PanelRender());
jTable1.getColumnModel().getColumn(3).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(4).setPreferredWidth(40);
jTable1.getColumnModel().getColumn(5).setPreferredWidth(35);
jTable1.getColumnModel().getColumn(6).setPreferredWidth(40);
jTable1.getColumnModel().getColumn(7).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(8).setPreferredWidth(80);
jTable1.getColumnModel().getColumn(9).setPreferredWidth(80);
jTable1.getColumnModel().getColumn(10).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(11).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(12).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(13).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(14).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(15).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(16).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(17).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(18).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(19).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(20).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(21).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(22).setPreferredWidth(30);
jTable1.getColumnModel().getColumn(23).setPreferredWidth(70);
jTable1.getColumnModel().getColumn(23).setCellEditor(new PanelEditor());
jTable1.getColumnModel().getColumn(23).setCellRenderer(new PanelRender());
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 617, Short.MAX_VALUE)
.addComponent(jLabel1))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(37, 37, 37)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 309, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public void modTabella()
{
jTable1.setModel(new DefaultTableModel());
}
public static void main(String args[])
{
//debug
Giocatore giocatore1 = new Giocatore("26681189");
//fine debug
// estrazione dell'id da url del tipo http://trophymanager.com/showprofile...yerid=00000000
String id = "";
try
{
String arg = args[0];
id = arg.substring(49);
}
catch(ArrayIndexOutOfBoundsException eccArgs)
{
}
try
{
ServerSocket welcomeSocket = new ServerSocket(8813);
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new main().setVisible(true);
}
});
while(true)
{
Socket connectionSocket = welcomeSocket.accept();
ObjectInputStream inFromClient = new ObjectInputStream(connectionSocket.getInputStream());
connectionSocket.close();
}
}
catch(IOException exc)
{
try
{
Socket connectionSocket = new Socket("localhost",8813);
ObjectOutputStream outToServer = new ObjectOutputStream(connectionSocket.getOutputStream());
outToServer.writeBytes(id+'\n');
outToServer.flush();
connectionSocket.close();
}
catch(IOException excclient)
{
JOptionPane.showMessageDialog(null, "Errore collegamento a socket "+exc);
}
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration//GEN-END:variables
}
nel progetto ci sono altre quatto classi: Giocatore, DataSadenza, PanelRender e PanelEditor e lo scopo del programma è di prendere informazioni da internet attraverso la parserizzazione di pagine web e salvarli in un file e conseguentemente visualizzarle a video in una jtable.