2013-07-17 49 views
5

Tôi đang sử dụng Eclipse để xây dựng chương trình và khi tôi chạy chương trình, nó nói rằng "lỗi tồn tại", tôi vẫn chạy nó, không có lỗi hiển thị trong bảng điều khiển và ứng dụng chạy màn hình trống. Tại sao điều này?Tại sao Eclipse nói rằng "lỗi tồn tại" nhưng không hiển thị gì trong bảng điều khiển?

Thông tin bổ sung: Gần đây tôi đã cố gắng thay đổi bố cục trước đó của mình, từ một hình thức rất thô, để sử dụng GridBagLayout, tuy nhiên tôi không quen thuộc với việc sử dụng bố cục. Tôi mạnh mẽ nghi ngờ vấn đề nằm trong, hoặc xoay quanh, bố trí của tôi kể từ khi chương trình hoạt động đúng trước khi tôi cố gắng thực hiện thay đổi.

Dưới đây là hai lớp học chính của tôi có liên quan đến việc bố trí, tiếc cho nó là lộn xộn, tôi nhận xét ra rất nhiều dòng mà làm việc cho bố trí trước đó trong trường hợp tôi phải quay trở lại với nó:

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

Mở chế độ xem "Nhật ký lỗi" để xem lỗi Eclipse. Mở chế độ xem "Sự cố" để xem sự cố với mã của bạn hoặc quá trình tạo. –

+0

có thể có lỗi là một số lớp khác của dự án của bạn – fmodos

+1

không cần downvote, chỉ vì sự thiếu kinh nghiệm của tôi, tôi đã thực hiện nghiên cứu trước khi đến đây –

Trả lời

1

Đây có thể là lỗi JRE. Nhấp chuột phải vào gốc của dự án và chọn tùy chọn. Hãy đến với JRE đã cài đặt và tìm lỗi. Ngoài ra, hãy xây dựng lại dự án và kiểm tra Window > Show View > Error Log, như được đề xuất trong một nhận xét của @Ted Hopp.

8

Đi tới cửa sổ -> Hiển thị chế độ xem -> chung -> Sự cố và bạn sẽ thấy danh sách lỗi. Trong trường hợp của tôi - tôi đã có một thư mục nguồn sai trong Build Path. Cấu hình Build Path đã giải quyết vấn đề "Lỗi tồn tại trong dự án của bạn". Trong giao diện 'sự cố' - rt nhấp vào lỗi và khắc phục nhanh - điều này giải quyết được vấn đề.

+0

Cảm ơn một nhóm !! –

0

Đi tới cửa sổ → Hiển thị Xem → chung → Sự cố và bạn sẽ thấy danh sách lỗi. Trong trường hợp của tôi, một số tệp JAR bị thiếu trên đường dẫn xây dựng. Cấu hình Build Path đã giải quyết vấn đề "Lỗi tồn tại trong dự án của bạn". Trong chế độ xem 'sự cố', nhấp chuột phải vào lỗi và khắc phục nhanh.

Các vấn đề liên quan