2013-07-17 9 views
5

Sto usando Eclipse per creare un programma e quando vado a eseguirlo, dice che "esistono errori", lo eseguo comunque, non ci sono errori nella console e l'applicazione esegue uno schermo vuoto. Perchè è questo?Perché Eclipse dice che "gli errori esistono" ma non mostra nulla nella console?

Informazione supplementare: Recentemente ho cercato di cambiare il mio layout precedente, passando da una forma molto grezza, ad utilizzare GridBagLayout, però io non sono molto familiare con l'utilizzo di layout. Sospetto fortemente che il problema risieda o ruoti attorno al mio layout, dal momento che il programma ha funzionato correttamente prima di provare a fare cambiamenti.

Ecco le mie due classi principali che coinvolgono il layout, dispiaciuto per questo essere disordinato, ho commentato un sacco di linee che hanno lavorato per il layout precedente nel caso in cui devo tornare ad esso:

import java.awt.*; 
import java.sql.SQLException; 
import java.util.LinkedList; 

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JLayeredPane; 
import javax.swing.JPanel; 
import javax.swing.Timer; 
import javax.swing.UIManager; 
import javax.swing.border.Border; 
import javax.swing.plaf.ColorUIResource; 

import java.sql.*; 

public class MainDisplay extends JFrame { 

static Toolkit tk = Toolkit.getDefaultToolkit(); 
static int Width = (int)tk.getScreenSize().getWidth(); 
static int Height = (int)tk.getScreenSize().getHeight(); 

//public static JFrame frame = new JFrame(); 
public static JPanel pane = new JPanel(); 


private static String targetIpHolder; 
private static String attackerIpHolder; 
private static int threatLevelHolder; 
private static String numAttacksHolder; 

public static void main (String[] args) { 
new MainDisplay(); 

} 

public MainDisplay() { 


setPreferredSize(new Dimension(Width, Height)); 
setLocation(0,0); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
setUndecorated(true); 



//pane.setLayout(gridBag); 
setLayout(new BorderLayout()); 
//add(pane, BorderLayout.CENTER); 
pane.setBounds(0,0, Width, Height); 

pack(); 
setVisible(true); 

ThreatPanel Run = new ThreatPanel(); 
Database Data = new Database(); 

//Create Connection to Database and run query 

Data.createConnection(); 
Data.getData(); 
    try { 
     while(Data.rslt.next()){ 
      Data.process(); 
      targetIpHolder = Data.getTarget(); 
      attackerIpHolder = Data.getAttacker(); 
      threatLevelHolder = Data.getThreat_level(); 
      numAttacksHolder = Data.getNum_attack(); 
      //System.out.println(targetIpHolder); 
      //System.out.println(attackerIpHolder); 
      Run.ShowThreats(); 
      try { 
       Thread.sleep(1000*1); 
      } catch (InterruptedException e) { 

       e.printStackTrace(); 
      } 

     } 
    } catch (SQLException e) { 

     e.printStackTrace(); 
    } 



} 

public static String getTargetIpHolder(){ 
return targetIpHolder; 
} 
public static String getAttackerIpHolder(){ 
return attackerIpHolder; 
} 
public static int getThreatLevelHolder(){ 
return threatLevelHolder; 
} 
public static String getNumAttacks(){ 
return numAttacksHolder; 
} 

} 

import java.awt.Color; 
import java.awt.Font; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import java.awt.Image; 
import java.awt.image.RenderedImage; 
import java.io.BufferedInputStream; 
import java.io.BufferedReader; 
import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 


import javax.imageio.ImageIO; 
import javax.swing.Icon; 
import javax.swing.ImageIcon; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.SwingConstants; 



public class ThreatPanel { 

JPanel BackPanel = new JPanel(); 
//JPanel HeadingBreak = new JPanel(); 
JPanel DarkPanel = new JPanel(); 
//JPanel HeadingBreak = new JPanel(); 
//JPanel HorizontalSplit1 = new JPanel(); 
//JPanel HorizontalSplit2 = new JPanel(); 
//JPanel VerticalSplit = new JPanel(); 

public GridBagLayout gridBag = new GridBagLayout(); 
public GridBagConstraints gbc = new GridBagConstraints(); 


final int TEST = 0; 
final int TEST2 = 100; 
final int TEST3 = 200; 

private String city; 
private String region; 
private String latitude; 
private String longitude; 
private Image img; 
private ImageIcon icon; 

Color severeColor = new Color(225,102,00); 

URL geoLocRetriever; 


//Target area declarations. 
String Client = "CLIENT"; //filler 
JLabel Target = new JLabel("TARGET"); 
JLabel ClientLabel = new JLabel(Client); //filler 
JLabel TargetServerData; 
JLabel ServerID = new JLabel("SERVER ID"); 

//Attacker area declarations. 
JLabel Attacker = new JLabel("ATTACKER"); 
JLabel AttackerData; 
JLabel GeoLocData; 
JLabel GeoLocImg; 
JLabel GeoLocLabel = new JLabel("GEO LOCATION"); 

//Threat Level area declarations. 
JLabel ThreatLevel = new JLabel("THREAT"); 
JLabel ThreatLevelData; 

//Number of Attacks declarations 
JLabel NumberOfAttacks = new JLabel("ATTACKS"); 
JLabel NumberOfAttacksData; 


public ThreatPanel() 
{ 
DarkPanel.setLayout(gridBag); 

TargetServerData = new JLabel(); 
AttackerData = new JLabel(); 
ThreatLevelData = new JLabel(); 
NumberOfAttacksData = new JLabel(); 
GeoLocData = new JLabel(); 
GeoLocImg = new JLabel(); 


BackPanel.setLayout(null); 
BackPanel.setBackground(Color.WHITE); 
BackPanel.setBounds(0,0, MainDisplay.Width, MainDisplay.Height); 
BackPanel.setOpaque(true); 
/* 
HeadingBreak.setBackground(Color.WHITE); 
HeadingBreak.setBounds(0, 80, MainDisplay.Width, 3); 
HeadingBreak.setOpaque(true); 
*/ 
/* 
HorizontalSplit1.setBackground(Color.WHITE); 
HorizontalSplit1.setBounds(0, MainDisplay.Height/2, MainDisplay.Width, 3); 
HorizontalSplit1.setOpaque(true); 
*/ 
/* 
HorizontalSplit2.setBackground(Color.WHITE); 
HorizontalSplit2.setBounds(0, MainDisplay.Height/2+80, MainDisplay.Width, 3); 
HorizontalSplit2.setOpaque(true); 
*/ 
/* 
VerticalSplit.setBackground(Color.WHITE); 
VerticalSplit.setBounds((int)(MainDisplay.Width/1.5), 0, 3, MainDisplay.Height); 
VerticalSplit.setOpaque(true); 
*/ 
//Target area settings. 

Target.setFont(new Font("Arial", Font.BOLD, 85)); 
Target.setForeground(Color.GREEN); 
Target.setBounds(0, 0, ((int)(MainDisplay.Width/1.5)-3), 75); 
Target.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 0; 
gbc.gridy = 0; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(Target, gbc); 

ClientLabel.setForeground(Color.WHITE); 
ClientLabel.setFont(new Font("Arial", Font.BOLD, 100)); 
ClientLabel.setBounds(0, 115, ((int)(MainDisplay.Width/1.5)-3), 95); 
ClientLabel.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 0; 
gbc.gridy = 1; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(ClientLabel, gbc); 


TargetServerData.setForeground(Color.WHITE); 
TargetServerData.setFont(new Font("Arial", Font.BOLD, 120)); 
TargetServerData.setBounds(0, 230, ((int)(MainDisplay.Width/1.5)-3), 95); 
TargetServerData.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 0; 
gbc.gridy = 2; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(TargetServerData, gbc); 

ServerID.setForeground(Color.WHITE); 
ServerID.setFont(new Font("Arial", Font.BOLD, 120)); 
ServerID.setBounds(0, 230, ((int)(MainDisplay.Width/1.5)-3), 95); 
ServerID.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 0; 
gbc.gridy = 3; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(ServerID, gbc); 

Attacker.setFont(new Font("Arial", Font.BOLD, 85)); 
Attacker.setForeground(Color.RED); 
Attacker.setBounds(0, (MainDisplay.Height/2)+3, ((int)(MainDisplay.Width/1.5)-3), 75); 
Attacker.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 0; 
gbc.gridy = 4; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(Attacker, gbc); 

AttackerData.setForeground(Color.RED); 
AttackerData.setFont(new Font("Arial", Font.BOLD, 70)); 
AttackerData.setBounds(0, ((int)(MainDisplay.Height/1.5)-3), ((int)(MainDisplay.Width/1.5)-3), 75); 
AttackerData.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 0; 
gbc.gridy = 5; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(AttackerData, gbc); 

GeoLocData.setFont(new Font("Arial", Font.BOLD, 70)); 
GeoLocData.setForeground(Color.RED); 
GeoLocData.setBounds(0, (int)(MainDisplay.Height/1.2), ((int)(MainDisplay.Width/1.5)-3), 75); 
GeoLocData.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 0; 
gbc.gridy = 6; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(GeoLocData, gbc); 

ThreatLevel.setFont(new Font("Arial", Font.BOLD, 85)); 
ThreatLevel.setForeground(Color.GREEN); 
ThreatLevel.setBounds(725, 0, ((int)(MainDisplay.Width/1.5)-3), 75); 
ThreatLevel.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 1; 
gbc.gridy = 0; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(ThreatLevel, gbc); 

ThreatLevelData.setFont(new Font("Arial", Font.BOLD, 100)); 
ThreatLevelData.setBounds(725, 105, ((int)(MainDisplay.Width/1.5)-3), 95); 
ThreatLevelData.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 1; 
gbc.gridy = 1; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(ThreatLevelData, gbc); 


NumberOfAttacks.setFont(new Font("Arial", Font.BOLD, 85)); 
NumberOfAttacks.setForeground(Color.RED); 
NumberOfAttacks.setBounds(725, (MainDisplay.Height/2)+3, ((int)(MainDisplay.Width/1.5)-3), 75); 
NumberOfAttacks.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 1; 
gbc.gridy = 2; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(NumberOfAttacks, gbc); 

NumberOfAttacksData.setFont(new Font("Arial", Font.BOLD, 85)); 
NumberOfAttacksData.setForeground(Color.RED); 
NumberOfAttacksData.setBounds(725, (int) ((MainDisplay.Height/1.5)), ((int)(MainDisplay.Width/1.5)-3), 75); 
NumberOfAttacksData.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 1; 
gbc.gridy = 3; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(NumberOfAttacksData, gbc); 

GeoLocLabel.setFont(new Font("Arial", Font.BOLD, 85)); 
GeoLocLabel.setForeground(Color.RED); 
GeoLocLabel.setBounds(0, (MainDisplay.Height/2)+3, ((int)(MainDisplay.Width/1.5)-3), 75); 
GeoLocLabel.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 1; 
gbc.gridy = 4; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(GeoLocLabel, gbc); 

GeoLocImg.setBounds(1050, 590, 300, 300); 
GeoLocImg.setHorizontalAlignment(SwingConstants.CENTER); 
gbc.gridx = 1; 
gbc.gridy = 5; 
gbc.gridheight = 2; 
gbc.fill = GridBagConstraints.HORIZONTAL; 
DarkPanel.add(GeoLocData, gbc); 

//Remaining settings. 
/* 
//DarkPanel.setLayout(null); 
//DarkPanel.setBackground(Color.BLACK); 
//DarkPanel.setBounds(3, 3, ((MainDisplay.Width)-6), ((MainDisplay.Height)-6)); 
//DarkPanel.setOpaque(true); 
////DarkPanel.add(Target); 
//DarkPanel.add(HeadingBreak); 
//DarkPanel.add(VerticalSplit); 
//DarkPanel.add(HorizontalSplit1); 
//DarkPanel.add(HorizontalSplit2); 
DarkPanel.add(ClientLabel); 
DarkPanel.add(TargetServerData); 
DarkPanel.add(ThreatLevel); 
DarkPanel.add(ThreatLevelData); 
DarkPanel.add(Attacker); 
DarkPanel.add(AttackerData); 
DarkPanel.add(NumberOfAttacks); 
DarkPanel.add(NumberOfAttacksData); 
DarkPanel.add(GeoLocData); 
DarkPanel.add(GeoLocImg); 
*/ 

BackPanel.add(DarkPanel); 

MainDisplay.pane.add(BackPanel, new Integer(0), 0); 

} 

public void getGeoLoc() 
{ 
String locHolder; 
try { 
    geoLocRetriever = new URL("http://ip-api.com/line/*******"); //+ MainDisplay.getAttackerIpHolder() 
} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} 

InputStream stream = null; 
try { 
    stream = geoLocRetriever.openStream(); 
} catch (IOException e1) { 
    e1.printStackTrace(); 
} 
ByteArrayOutputStream buffer = new ByteArrayOutputStream(); 
if (stream != null) try { 
    final BufferedInputStream input = new BufferedInputStream(stream); 
    final byte[] reader = new byte[16384]; 
    int r = 0; 
    while ((r = input.read(reader, 0, 16384)) != -1) 
     buffer.write(reader, 0, r); 
    buffer.flush(); 
} catch(IOException e) { 
    e.printStackTrace(); 
} finally { 
    if(stream != null) try { 
     stream.close(); 
    } catch(IOException e) { 
     e.printStackTrace(); 
    } 
} 


locHolder = new String(buffer.toByteArray()); 
String[] lines = locHolder.split("\n"); 
//System.out.print(lines[5]); 

city = lines[5]; 
region = lines[4]; 
latitude = lines[7]; 
longitude = lines[8]; 

String temp; 
temp="https://maps.googleapis.com/maps/api/staticmap?center=" +latitude +"," +longitude +"&zoom=7&size=300x300&markers=color:red|label:A|" +latitude +"," +longitude +"&sensor=false"; 
URL mapurl = null; 
try { 
    mapurl = new URL(temp); 
} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} 
try { 
    img = ImageIO.read(mapurl); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
icon = new ImageIcon(img); 
} 

public void ShowThreats(){ 

    String targetEnd = MainDisplay.getTargetIpHolder();  
    TargetServerData.setText(targetEnd); 

    String attackerEnd = MainDisplay.getAttackerIpHolder(); 
    AttackerData.setText(attackerEnd); 

    getGeoLoc(); 
    String geoLocEnd = city + "," + region; 
    GeoLocData.setText(geoLocEnd); 
    GeoLocImg.setIcon(icon); 


    int threatLevelEnd = MainDisplay.getThreatLevelHolder(); 
    //System.out.println(threatLevelEnd); 
    if ((threatLevelEnd > TEST) && (threatLevelEnd < TEST2)){ 
     ThreatLevelData.setText("WARNING"); 
     ThreatLevelData.setForeground(Color.YELLOW); 
    } 
    else if ((threatLevelEnd > TEST2) && (threatLevelEnd < TEST3)){ 
     ThreatLevelData.setText("SEVERE"); 
     ThreatLevelData.setForeground(severeColor); 
    } 
    else if (threatLevelEnd > TEST3){ 
     ThreatLevelData.setText("CRITICAL"); 
     ThreatLevelData.setForeground(Color.RED); 
    } 
    else{ 
     ThreatLevelData.setText("ERROR"); 
     ThreatLevelData.setForeground(Color.PINK); 
    } 

    String numAttacksEnd = MainDisplay.getNumAttacks(); 
    NumberOfAttacksData.setText(numAttacksEnd); 
    //System.out.println(numAttacksEnd); 

} 

} 
+6

Aprire la vista "Registro errori" per vedere gli errori di Eclipse. Apri la vista "Problemi" per vedere i problemi con il tuo codice o il processo di compilazione. –

+0

potrebbe avere errori è un'altra classe del tuo progetto – fmodos

+1

non c'è bisogno di downvotare, solo per la mia inesperienza, ho fatto ricerche precedenti prima di venire qui –

risposta

1

Potrebbe essere un errore JRE. Fare clic con il pulsante destro del mouse sulla radice del progetto e selezionare le preferenze. Vieni ai JRE installati e cerca un errore. Inoltre, ricostruire il progetto e controllare Window > Show View > Error Log, come suggerito in un commento di @Ted Hopp.

8

Vai a Finestra -> Mostra vista -> generale -> Problemi e vedrete l'elenco degli errori. Nel mio caso - ho avuto una cartella sorgente errata in Build Path. La configurazione di Build Path ha risolto il problema "Errore esiste nel progetto". Nella vista 'problemi' - rt fai clic sull'errore e sulla soluzione rapida- questo ha risolto il problema.

+0

Grazie mille !! –

0

Vai alla finestra → Mostra vista → generali → Problemi e si vedrà l'elenco degli errori. Nel mio caso, alcuni dei file JAR mancavano sul percorso di generazione. La configurazione di Build Path ha risolto il problema "Errore esiste nel progetto". Nella vista "Problemi", fai clic con il pulsante destro del mouse sull'errore e sulla correzione rapida.

Problemi correlati