2013-06-18 2 views
1

Я долгое время работал над этим проектом и только что вернулся, чтобы работать над ним, оставив его на месяц. В последний раз, когда я работал над этим, все работало нормально, и я убирал вещи, чтобы это было закончено. Сегодня, когда я открыл eclipse, было множество ошибок без решений, большинство из которых касались скобок, но некоторые из них касались метода actionPerformed. Я указал, на каких линиях идут ошибки, если это помогает. Просто интересно, может ли кто-нибудь сказать мне, есть ли реальные ошибки или что-то не так с eclipse.Eclipse обнаруживает синтаксические ошибки, которые ранее не существовали

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.image.BufferedImage; 
import java.util.Random; 
import javax.swing.*; 

public class main extends JFrame implements ActionListener{ 
JButton rock; 
JButton scissors; 
JButton paper; 
JLabel left; 
ImageIcon rock1; 
ImageIcon scissors1; 
ImageIcon scissors2; 
ImageIcon paper2; 
ImageIcon paper1; 
ImageIcon rock2; 
ImageIcon back; 
ImageIcon scissorsb; 
ImageIcon youWin; 
ImageIcon youLose; 
ImageIcon Loading; 
JLabel background; 
JLabel right; 
String [] Rock3 = {}; 
String [] RPS = {"Rock","Paper","Scissors"}; 
Random rand = new Random(); 
Random Prize = new Random(); 
int num = rand.nextInt(RPS.length); 
int yourChoice = -1; 
JLabel winner; 
Container contentPane = this.getContentPane(); 
SpringLayout layout = new SpringLayout(); 
String Tie = "Tie"; 
String compwins = "Computer wins!"; 
String youwin = "You win!"; 
Font winnerFont = new Font("Font", Font.PLAIN, 35); 
int yourScore = 0; 
int compScore = 0; 
String yourNum = Integer.toString(yourScore); 
String compNum = Integer.toString(compScore); 
JLabel yourPoints = new JLabel(); 
JLabel compPoints; 
private Timer t; 
private Timer t2; 
private Timer t3; 

public main(){ 
    super("Rock Paper Scissors"); 
    back = new ImageIcon("space-wallpaper-space-32897775-1920-1080.jpg"); 
    youWin = new ImageIcon("you win.png"); 
    youLose = new ImageIcon("you lose.png"); 
    paper1 = new ImageIcon("paper1.png"); 
    paper2 = new ImageIcon("paper2.png"); 
    scissors1 = new ImageIcon("scissors1.png"); 
    scissors2 = new ImageIcon("scissors2.png"); 
    rock1 = new ImageIcon("rock1.png"); 
    rock2 = new ImageIcon("rock2.png"); 
    Loading = new ImageIcon("loadingbig.png"); 

    background = new JLabel(); 
    left = new JLabel(); 
    right = new JLabel(); 
    winner = new JLabel(); 
    compPoints = new JLabel(); 
    yourPoints = new JLabel(); 
    right.setVisible(true); 
    this.setVisible(true); 
    this.setSize(1920,1080); 
    winner.setFont(winnerFont); 
    winner.setHorizontalAlignment(SwingConstants.CENTER); 

    contentPane.add(compPoints); 
    contentPane.add(yourPoints); 


     contentPane.setLayout(layout); 

     contentPane.add(winner); 

     contentPane.add(left); 
     contentPane.add(right); 



rock = new JButton("Rock"); 
paper = new JButton ("Paper"); 
scissors = new JButton ("Scissors"); 

layout.putConstraint(SpringLayout.WEST, rock, 
     500, 
     SpringLayout.WEST, contentPane); 
this.add(rock, BorderLayout.NORTH); 
layout.putConstraint(SpringLayout.SOUTH, rock, 
     -30, 
     SpringLayout.SOUTH, contentPane); 
layout.putConstraint(SpringLayout.WEST, rock, 
     40, 
     SpringLayout.NORTH, contentPane); 
this.add(paper, BorderLayout.NORTH); 
layout.putConstraint(SpringLayout.SOUTH, paper, 
     -30, 
     SpringLayout.SOUTH, contentPane); 
layout.putConstraint(SpringLayout.WEST, paper, 
     200, 
     SpringLayout.NORTH, contentPane); 
this.add(scissors, BorderLayout.NORTH); 
layout.putConstraint(SpringLayout.SOUTH, scissors, 
     -30, 
     SpringLayout.SOUTH, contentPane); 
layout.putConstraint(SpringLayout.WEST, scissors, 
     360, 
     SpringLayout.NORTH, contentPane); 
rock.setBackground(Color.GRAY); 
rock.setPreferredSize(new Dimension(140,50)); 
paper.setBackground(Color.WHITE); 
paper.setPreferredSize(new Dimension(140,50)); 
scissors.setBackground(Color.LIGHT_GRAY); 
scissors.setPreferredSize(new Dimension(140,50)); 
rock.repaint(); 
scissors.repaint(); 
paper.repaint(); 
Background(); 


} 


public static void main(String args[]){ 
main framer = new main(); 
} 
@Override 
/*Error Here*/public void actionPerformed(ActionEvent arg0) { 
// TODO Auto-generated method stub 


    if(arg0.getSource() ==rock){ 
     left.setIcon(rock1); 
     yourChoice = 0; 
    }else if(arg0.getSource() ==paper){ 
     left.setIcon(paper1); 
     yourChoice = 1; 
    }else if(arg0.getSource() ==scissors){ 
     left.setIcon(scissors1); 
     yourChoice = 2; 
    } 

    computerMove(); 


     Score(); 
     winner(); 
} 
public void Background(){ 
rock.setVisible(false); 
scissors.setVisible(false); 
paper.setVisible(false); 
contentPane.add(background); 
background.setIcon(Loading); 
t = new Timer(4000, new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     background.setIcon(back); 
     rock.setVisible(true); 
     scissors.setVisible(true); 
     paper.setVisible(true); 
    } 
}); 
t.setRepeats(false); 
t.start(); 
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
rock.doClick(); 
paper.doClick(); 
scissors.doClick(); 
rock.addActionListener(this); 
paper.addActionListener(this); 
scissors.addActionListener(this); 
} 
public void Score(){ 

yourPoints.setFont(winnerFont); 
compPoints.setFont(winnerFont); 

layout.putConstraint(SpringLayout.WEST, yourPoints, 
     100, 
     SpringLayout.WEST, contentPane); 
layout.putConstraint(SpringLayout.NORTH, yourPoints, 
     800, 
     SpringLayout.NORTH, contentPane); 
layout.putConstraint(SpringLayout.WEST, compPoints, 
     1790, 
     SpringLayout.WEST, contentPane); 
layout.putConstraint(SpringLayout.NORTH, compPoints, 
     800, 
     SpringLayout.NORTH, contentPane); 



if ((num==0 && yourChoice ==0)||(num==2 && yourChoice ==2)||(num==1 && yourChoice ==1)){ 
    layout.putConstraint(SpringLayout.NORTH, winner, 
      50, 
      SpringLayout.NORTH, contentPane); 
    layout.putConstraint(SpringLayout.WEST, winner, 
      890, 
      SpringLayout.WEST, contentPane); 
    winner.setText(Tie); 
    winner.repaint(); 
    t = new Timer(1400, new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      winner.setText(null); 
     } 
    }); 
    t.setRepeats(false); 
    t.start(); 
}else if((num==0 && yourChoice ==2)||(num==2 && yourChoice ==1)||(num==1 && yourChoice ==0)){ 
    compScore ++; 
    compPoints.setText(compNum); 
    layout.putConstraint(SpringLayout.NORTH, winner, 
      50, 
      SpringLayout.NORTH, contentPane); 
    layout.putConstraint(SpringLayout.WEST, winner, 
      810, 
      SpringLayout.WEST, contentPane); 
    winner.setText(compwins); 
    winner.repaint(); 
    compPoints.repaint(); 
    /*Error Here*/t2 = new Timer(1400, new ActionListener() { 

     @Override 
     /*Error Here*/public void actionPerformed(ActionEvent e) { 
      winner.setText(null); 
      /*Error Here*/} 
     /*Error Here*/}); 
    t2.setRepeats(false); 
    t2.start(); 
    /*Error Here*/}else if((num==2 && yourChoice ==0)||(num==0 && yourChoice ==1)||(num==1   && yourChoice ==2)){ 
    yourScore ++; 
    yourPoints.setText(yourNum); 
    layout.putConstraint(SpringLayout.NORTH, winner, 
      50, 
      SpringLayout.NORTH, contentPane); 
    layout.putConstraint(SpringLayout.WEST, winner, 
      850, 
      SpringLayout.WEST, contentPane); 
    winner.setText(youwin); 
    winner.repaint(); 
    yourPoints.repaint(); 
    t3 = new Timer(1400, new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      winner.setText(null); 
     } 
    }); 
    t3.setRepeats(false); 
    /*Error Here*/t3.start(); 


    /*Error Here*/} 
yourNum = Integer.toString(yourScore); 
compNum = Integer.toString(compScore); 
yourPoints.setText(yourNum); 
compPoints.setText(compNum); 
winner.repaint(); 
yourPoints.repaint(); 
compPoints.repaint(); 
winner.setForeground(Color.RED); 
yourPoints.setForeground(Color.RED); 
compPoints.setForeground(Color.RED); 




/*Error Here*/} 

public void winner(){ 
if(yourScore == 10){ 
    background.setIcon(youWin); 
    contentPane.add(background); 
    background.repaint(); 
    left.setVisible(false); 
    right.setVisible(false); 
    yourPoints.setVisible(false); 
    compPoints.setVisible(false); 
    winner.setVisible(false); 
    rock.setVisible(false); 
    paper.setVisible(false); 
    scissors.setVisible(false); 
    t = new Timer(3000, new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 

      computerMove(); 
      Score(); 
      winner(); 
     } 
    }); 
    t.setRepeats(false); 
    t.start(); 

}else if(compScore == 10){ 
background.setIcon(youLose); 
contentPane.add(background); 
background.repaint(); 
left.setVisible(false); 
right.setVisible(false); 
yourPoints.setVisible(false); 
compPoints.setVisible(false); 
winner.setVisible(false); 
rock.setVisible(false); 
paper.setVisible(false); 
scissors.setVisible(false); 
/*Error Here*/t = new Timer(3000, new ActionListener() { 

    @Override 
    /*Error Here*/public void actionPerformed(ActionEvent e) { 

     computerMove(); 
     Score(); 
     winner(); 
    } 
    /*Error Here*/}); 
t.setRepeats(false); 
t.start(); 
} 
} 
public void computerMove(){ 
num = rand.nextInt(RPS.length); 
if (num==0){ 
    right.setIcon(rock2); 
}else if(num==1){ 
    right.setIcon(paper2); 
}else if(num==2){ 
    right.setIcon(scissors2); 
} 


/*Error Here*/} 
+1

Вы попробовали очистить проект снова? – sanbhat

+0

Существует множество ошибок, начинающихся с определения двоичного метода. – NINCOMPOOP

+0

Священный отступ! Раньше это случалось со мной, и я просто обновил проект. Попробуйте выйти из затмения, если это не сработает. чистая сборка, как предложено выше, также может помочь. – Tips48

ответ

1

Всякий раз, когда вы столкнулись странные проблемы с затмением, попробуйте сделать следующее:

  • Чистый проект. Project ->Clean....
  • Закрыть проект и снова открыть его снова. Project ->Open Project/Close Project.
  • Сделайте копию исходного файла и удалите исходный файл, затем снова вставьте исходный файл.
+0

Я попробую это и расскажу вам, что произойдет. –

+0

Ничего из этого не получилось –

1

Вам не хватает закрывающей скобки для computerMove.

При решении таких проблем попробуйте комментировать методы, пока не получите что-то, что компилируется, а затем раскомментируйте небольшие блоки кода, пока не найдете блокировку.

1

Похоже, вам не хватает закрывающего кронштейна } в конце файла.

Довольно плохой отступ и наименования затрудняют его замещение. Взгляните на Code Conventions for the Java Programming Language.

+0

Ничего себе, как я пропустил это , Я чувствую себя идиотом. Что касается форматирования, это был мой первый проект, и я слишком ленив, чтобы исправить его сейчас. –

+2

@ TheFloatingLlama: Ctrl + Shift + F или правый щелчок: Source-> Format. Или Ctrl + A то Ctrl + I (Source-> Correct Indentation) не должен прикладывать столько усилий ;-) – Burkhard

+0

О, не знал об этом, спасибо :) –

Смежные вопросы