Rozwinąłem trochę program ale napotkałem problem, a mianowicie:
program podkreśla mi dane metody: showOpenDialog() i getSelectedFile() tłumacząc to magicznym komentarzem: "Cannot find a symbol"
Co powinienem dopisać aby to działało poprawnie?
Przepraszam jeśli jakoś niepoprawnie wkleiłem kod
package test;
import java.awt.event.*;
import java.awt.*;
import java.io.File;
import javax.swing.*;
public class Test extends JFrame implements MouseListener {
static private final String newline = "\n";
//-------------------------
private Pole[][] kratki = new Pole[30][30];
//------------------------
public static void main(String[] args) {
JFileChooser fc = new JFileChooser();
JFrame menu = new JFrame("Menu");
menu.setVisible(true);
menu.setSize(250, 350);
menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new GridBagLayout());
menu.getContentPane().add(panel, BorderLayout.NORTH);
GridBagConstraints c = new GridBagConstraints();
JLabel label = new JLabel("<html> <p>Legenda:</p> <p> - LPM: dodaj/usuń pole;</p> "
+ "<p> - PPM: dodaj/usuń skarb;</p> <p> - ŚPM: ustaw jako pole startowe.</p> </html>");
c.gridx = 0;
c.gridy = 0;
c.insets = new Insets(10, 10, 10, 10);
panel.add(label, c);
JButton button1 = new JButton("Zapisz");
c.gridx = 0;
c.gridy = 1;
panel.add(button1, c);
button1.addActionListener(new Save());
JButton button2 = new JButton("Wczytaj");
c.gridx = 0;
c.gridy = 2;
panel.add(button2, c);
button2.addActionListener(new Open());
JButton button3 = new JButton("Przetestuj");
c.gridx = 0;
c.gridy = 3;
panel.add(button3, c);
JButton button4 = new JButton("Zamknij");
c.gridx = 0;
c.gridy = 4;
panel.add(button4, c);
button4.addActionListener(new Close());
JFrame frame = new JFrame("as");
frame.add(new Test());
panel.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//------------------------
static class Close implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
static class Open implements ActionListener {
private Object fc;
@Override
public void actionPerformed(ActionEvent e) {
int returnVal = fc.showOpenDialog();
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
}
}
}
static class Save implements ActionListener {
private Object fc;
@Override
public void actionPerformed(ActionEvent e) {
int returnVal = fc.showOpenDialog();
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
}
}
}
public Test() {
super("Test");
setLayout(new GridLayout(30, 30));
for (int i = 0; i < 30; i++) {
for (int j = 0; j < 30; j++) {
Pole p = new Pole();
kratki[i][j] = p;
p.addMouseListener(this);
add(p);
}
}
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void mouseClicked(MouseEvent me) {
Pole src = (Pole) (me.getSource());
if (me.getButton() == MouseEvent.BUTTON1) {
src.setBg(Color.GRAY);
repaint();
} else if (me.getButton() == MouseEvent.BUTTON2) {
src.setBg(Color.BLUE);
repaint();
} else if (me.getButton() == MouseEvent.BUTTON3) {
src.setBg(Color.YELLOW);
repaint();
}
}
@Override
public void mouseEntered(MouseEvent me) {
}
@Override
public void mouseExited(MouseEvent me) {
}
@Override
public void mousePressed(MouseEvent me) {
}
@Override
public void mouseReleased(MouseEvent me) {
}
//------------------------
class Pole extends JPanel {
public void setBg(Color bg) {
setBackground(bg);
}
//--------------------
public Pole() {
setPreferredSize(new Dimension(15, 15));
setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
//setBackground(Color.WHITE);
}
}
}