Java getting
Java getting "Illegal start of expression" and "';' expected" errors for a method?
EDIT: I figured it out and finished the program (finally). Thanks everyone for your help!
I'm trying to create a simple paint program where the user can click on radio buttons to choose a shape that they can draw on the panel by dragging with the mouse. I do simply want the code to do this, as I want to figure it out on my own and think that I can. BUT I'm getting these errors on the line declaring the method "public void newShape(String shape) {". I am getting 4 errors on this one line. Two of them are "error: illegal start of expression", and the other two are "error: ';' expected". If someone could help me out and tell me what I'm doing wrong I would greatly appreciate it.
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.event.*; public class HW4_Paint extends JFrame { private static Color color = Color.BLACK; // current selected drawing color private static boolean filled = false; // fill mode - "Filled" or "Empty" private static String currentShape = "Line"; // current selected shape private static ArrayList shapes = new ArrayList(); // a list of all of the shapes in the current drawing public static void main(String[] args) { // create the frame and format it JFrame frame = new HW4_Paint(); frame.setTitle("Paint Program"); frame.setSize(800,500); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public HW4_Paint() { // create the menu bar JMenuBar jmb = new JMenuBar(); setJMenuBar(jmb); // make the file menu JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic('F'); jmb.add(fileMenu); // make the exit menu item under the file menu JMenuItem exitMenuItem = new JMenuItem("Exit", 'X'); fileMenu.add(exitMenuItem); exitMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); // make the help menu JMenu helpMenu = new JMenu("Help"); helpMenu.setMnemonic('H'); jmb.add(helpMenu); // make the help menu item under the help menu JMenuItem helpMenuItem = new JMenuItem("Help", 'H'); helpMenu.add(helpMenuItem); helpMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String message = "This program allows you to draw pictures using different shapes and colors.\n" + "To change what shape you are drawing with, select the button next to Line, Oval, or Rectangle, depending on which shape you want to draw with.\n" + "If you want the shape to be filled in (only applicable with oval and rectangle), select the checkbox next to Filled.\n" + "To change the color of the shape that you are drawing, click the button of the color that you want to change to.\n" + "To undo the last shape that you drew, click the undo button once. You can repeat this as many times as you want until there are no remaining shapes.\n" + "To clear all of the shapes that you have drawn, click the Clear All button."; JOptionPane.showMessageDialog(null, message, "Help", JOptionPane.INFORMATION_MESSAGE); } }); // make the about menu item under the help menu JMenuItem aboutMenuItem = new JMenuItem("About", 'A'); helpMenu.add(aboutMenuItem); aboutMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String message = "HW4_Paint Program\n\n" + "Written by Joey Drees\n\n" + "CSC 360-001"; JOptionPane.showMessageDialog(null, message, "About", JOptionPane.INFORMATION_MESSAGE); } }); // make the panels that will be added to the frame for the GUI JPanel guiPanel = new JPanel(); guiPanel.setLayout(new BorderLayout()); JPanel colorPanel = new JPanel(new FlowLayout()); JPanel buttonPanel = new JPanel(new GridLayout(6,1)); JPanel drawingPanel = new DrawingPanel(); // add the guiPanel to the frame and them add the other panels to the guiPanel add(guiPanel); guiPanel.add(colorPanel, BorderLayout.SOUTH); guiPanel.add(buttonPanel, BorderLayout.EAST); guiPanel.add(drawingPanel, BorderLayout.CENTER); // create and add the buttons that will allow the user to change the color of the shapes JButton blackButton = new JButton("Black"); colorPanel.add(blackButton); blackButton.setSelected(true); JButton whiteButton = new JButton("White"); colorPanel.add(whiteButton); JButton grayButton = new JButton("Gray"); colorPanel.add(grayButton); JButton redButton = new JButton("Red"); colorPanel.add(redButton); JButton yellowButton = new JButton("Yellow"); colorPanel.add(yellowButton); JButton greenButton = new JButton("Green"); colorPanel.add(greenButton); JButton blueButton = new JButton("Blue"); colorPanel.add(blueButton); JButton newColorButton = new JButton("New Color"); colorPanel.add(newColorButton); // create and add the radio buttons to a button group that will allow the user to change the shape they are drawing with ButtonGroup jbtGroup = new ButtonGroup(); JRadioButton jrbLine = new JRadioButton("Line"); jrbLine.setMnemonic('L'); jbtGroup.add(jrbLine); buttonPanel.add(jrbLine); jrbLine.setSelected(true); jrbLine.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent E) { currentShape = "Line"; guiPanel.newShape(currentShape); repaint(); } }); JRadioButton jrbOval = new JRadioButton("Oval"); jrbOval.setMnemonic('O'); jbtGroup.add(jrbOval); buttonPanel.add(jrbOval); jrbOval.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent E) { currentShape = "Oval"; guiPanel.newShape(currentShape); repaint(); } }); JRadioButton jrbRectangle = new JRadioButton("Rectangle"); jrbRectangle.setMnemonic('R'); jbtGroup.add(jrbRectangle); buttonPanel.add(jrbRectangle); jrbLine.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent E) {
Answer by SpringLearner for Java getting "Illegal start of expression" and "';' expected" errors for a method?
There are two extra curly braces
} }
Remove these two
You need to keep one }
in the constructor HW4_Paint()
and remove one }
from the method newShape(String shape)
Answer by Christian Ternus for Java getting "Illegal start of expression" and "';' expected" errors for a method?
Welcome to StackOverflow! I commend your desire to solve your problem on your own, so I won't just hand you the answer.
You're getting that message because newShape()
is in the wrong place. Perhaps it's too far into a scope? Perhaps it's too far out of it? Check the indentation of your program in its IDE -- where is it sitting? Do you expect it to be there?
Answer by Alex for Java getting "Illegal start of expression" and "';' expected" errors for a method?
} // ADD IT HERE public void newShape(String shape) { switch (shape) { case "Line": Shape line = new Line(startX, startY, endX, endY); shapes.add(line); break; case "Oval": Shape oval = new Oval(startX, startY, endX, endY); shapes.add(oval); break; case "Rectangle": Shape rectangle = new Rectangle(startX, startY, endX, endY); shapes.add(rectangle); break; default: System.out.println("ERROR. Check logic."); } } } // REMOVE IT FROM HERE }
Answer by MadProgrammer for Java getting "Illegal start of expression" and "';' expected" errors for a method?
You seem to be declaring the newShape
method within the constructor of the HW4_Paint
class.
Add a }
before the public void newShape(String shape) {
and remove one }
after the method.
It should look more like...
// create the action listener for the clear all button clearAllButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (!shapes.isEmpty()) { shapes.clear(); repaint(); } } }); } // Add me public void newShape(String shape) { switch (shape) { case "Line": Shape line = new Line(startX, startY, endX, endY); shapes.add(line); break; case "Oval": Shape oval = new Oval(startX, startY, endX, endY); shapes.add(oval); break; case "Rectangle": Shape rectangle = new Rectangle(startX, startY, endX, endY); shapes.add(rectangle); break; default: System.out.println("ERROR. Check logic."); } } // Remove a } from here, so you should end with these 3, not 4 }
Answer by Louise for Java getting "Illegal start of expression" and "';' expected" errors for a method?
As far as I have found, errors like "illegal start of expression" or "';' expected" usually means you did something wrong with the {}. I had 38 errors entirely unrelated to the actuall lines of code but all due to a forgotten }.
Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72
0 comments:
Post a Comment