Mein Code ist unten. Es kompiliert sich gut für mich, aber mein Professor sagt, dass er einen Fehler bekommt, weil ich nicht einige Variablen in meiner Klasse für endgültig erklärt habe. Eclipse scheint damit auf meinem Rechner kein Problem zu haben, so dass ich nicht weiß, wie ich reparieren kann, was ich nicht sehen kann, ist falsch.Warum sollte ein Programm für mich kompilieren, aber nicht für eine andere Person?
Ich verstehe, dass einige Variablen endgültig sein müssen, um in verschachtelten Klassen zu arbeiten, aber die, die ich erstellt habe, scheinen gut zu funktionieren, endgültig oder nicht.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Random;
public class JColorFrame extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JColorFrame frame = new JColorFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JColorFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 522, 339);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.NORTH);
JPanel panel_1 = new JPanel();
contentPane.add(panel_1, BorderLayout.WEST);
JPanel panel_2 = new JPanel();
contentPane.add(panel_2, BorderLayout.EAST);
JPanel panel_3 = new JPanel();
contentPane.add(panel_3, BorderLayout.SOUTH);
Color[] color = new Color[8];
color[0] = Color.black;
color[1] = Color.white;
color[2] = Color.red;
color[3] = Color.blue;
color[4] = Color.green;
color[5] = Color.yellow;
color[6] = Color.magenta;
color[7] = Color.orange;
JButton btnChangeColor = new JButton("Change Color");
btnChangeColor.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Random random = new Random();
int random_1 = random.nextInt(4);
switch (random_1) {
case 0:
int random_2 = random.nextInt(8);
panel.setBackground(color[random_2]);
break;
case 1:
random_2 = random.nextInt(8);
panel_1.setBackground(color[random_2]);
break;
case 2:
random_2 = random.nextInt(8);
panel_2.setBackground(color[random_2]);
break;
case 3:
random_2 = random.nextInt(8);
panel_3.setBackground(color[random_2]);
break;
}
}
});
contentPane.add(btnChangeColor, BorderLayout.CENTER);
}
}
Sie verwenden Java 7> und Ihr Professor wird mit Hilfe von Java 6 < – MadProgrammer
@MadProgrammer: Es ist mehr wie sie Java verwenden 8 und ihr Professor ist mit Java 7 oder niedriger. – Makoto
@Makoto Wahrscheinlich habe ich irgendwie Java 7: P übersprungen – MadProgrammer