|
The last five lines of that do not make any sense.
The first line is (or should be) a method declaration (but it is not), hence the error message. A call to a method cannot exist at class level, it must be inside an executable block.
The next four define a method that has no name, so can never be executed.
|
|
|
|
|
That's done it
Not sure about the first five lines as I'm using Netbeans and it puts those lines in.
But this is the that solved it.
Quote: A call to a method cannot exist at class level, it must be inside an executable block.
So all I needed was,
private void rbSetQuestionFocusGained(java.awt.event.FocusEvent evt) {
set();
}
As rbSetQuestion is selected at the start, the set() method is executed.
Now to have a look at lists.
|
|
|
|
|
MallardsReach wrote: Not sure about the first five lines as I'm using Netbeans Which is a good reason to abandon Netbeans and use a simple editor*. That way you know that all the code is what you have written, rather than something the framework thinks you need. Once you have really mastered Java then go back to Netbeans, but until then it is only getting in your way. I speak from experience of trying to learn Visual C++ and MFC at the same time.
*notepad, notepad++, eclipse, or even Visual Studio Code, will all do the job. There are probably also many others that I have never looked at.
|
|
|
|
|
Once again Richard, Thanks for the advice.
I guess like most beginners I couldn't understand how writing code in a text editor and running it in cmd made a visual program. I did start with notepad ++ and compiled and run some programs but the result only showed itself in the cmd window, what use is that? then after looking around and gaining a little more understanding, I looked at examples where the code was written, compiled and run.
Lo and behold a window popped up with a button on it!
I think Netbeans makes you feel like you know but as this thread has pointed out, it's just an illusion.
So back to notepad ++ and back to a step at a time. Will also look at the other editors available.
|
|
|
|
|
I've looked at various articles and examples none of which are working for me.
I have a jPanel inside of which is a jlabel.
In the MouseDragged event I have the following code.
int x=evt.getX();
int y=evt.getY();
jLabel3.setLocation(x, y);
jLabel3.repaint();
The Label moves but it flickers and sometimes show a copy of it self.
Any help in the right direction would be appreciated.
|
|
|
|
|
The problem is that dragging produces many events so your code will be repeatedly moving the label a couple of points, and repainting it. You need to limit the number of repaints somehow. It's a long time since I wrote any GUI code in Java, so I am not sure exactly how this is best achieved. I expect Google will find some samples that help, or even some of the example code found in The Java™ Tutorials[^].
|
|
|
|
|
Thanks Richard,
It seems like Java is more of a behind the scenes type of language and not really GUI orientated despite the best efforts of netbeans and the like.
I guess I'll revert to VB as that does it everything you need for a windows environment even though it is platform dependent.
|
|
|
|
|
Not true. You would face exactly the same issue in VB, C# C++ etc.
|
|
|
|
|
|
Thanks Richard
I seem to remember it being easier in vb but could be looking through rose coloured specs.
I looked at the links you suggested but to no avail mind they are 12yrs old now so maybe not surprising.
I will try to use another idea instead.
I was trying to get a question with three possible answers and the user had to drag the correct answer in place, so maybe I'll look at seeing if a jTextField can be dragged around.
If that fails three radio buttons and they can click the one they think is the right answer.
I will stick with Java
|
|
|
|
|
I have created a method
void getSecond(int secondNum)
and in each of my radio buttons I have the following two pieces of code to return a number to the method
both work fine but just wondered which is better practice?
First
getSecond(11);
Second
getSecond(Integer.parseInt(times12.getName()));
|
|
|
|
|
There is no "better"; and if you can't explain how the statements differ, then the answer is "11", or "42".
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Thanks for the reply Eddy,
Glad to hear there is no 'Better' that's good to know.
Of course I can explain how they differ, both return a number to the method one returns the name of the radio button it refers to the other returns the number placed in the buttons event.
So I will use the one that returns the name of the button as it can eliminate the mistake of returning a number for a different button.
But as there is no 'Better' way, then I guess it's how ever the programmer feels on the day.
|
|
|
|
|
Hi
I am looking at Netbeans and have in a button control the following code;
int firstNum, answerNum = 0;
for (firstNum = 1; firstNum <= 12; firstNum ++)
answerNum = firstNum * 2;
displayTable.setText(firstNum + " x 2 = " + answerNum);
but in the textarea it only shows 13 x 2 = 24
does the for not work in netbeans? or does it have to be done differently.
|
|
|
|
|
That's exactly what I'd expect.
When firstNum is 12, answerNum is set to 24.
Then the for is executed again, increments firstNum to 13, then the test fails, so it goes on to display what you see.
Cheers,
Peter
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Thanks Peter,
So my question is how do I get it to display in the Textarea as it does when i run it in the cmd
Like this,
1 x 2 = 2
2 x 2 = 4
3 x 2 = 6
etc?
|
|
|
|
|
This is not netbeans (which is an IDE), it is Java code. You need to understand the difference. As to your question: You only have a single line being processed in the for loop. You need to put both lines inside a block thus:
for (firstNum = 1; firstNum <= 12; firstNum ++) {
answerNum = firstNum * 2;
displayTable.setText(firstNum + " x 2 = " + answerNum);
}
It is good practice to use braces in all repeat blocks, even those with only a single line. It means if you ever add another line to the loop it will always be inside the block.
|
|
|
|
|
Thanks for the reply and advice it now works as I wanted it to.
I changed the code as follows using "\n" to give me a new line each time it loops;
private void twoButtonActionPerformed(java.awt.event.ActionEvent evt) {
int firstNum, answerNum = 0;
for (firstNum = 1; firstNum <=12; firstNum ++){
answerNum = firstNum * 2;
displayTable.append(firstNum + " x 2 = " + answerNum +"\n");
}
}
In summing up then, Netbeans is developed by Apache and is just an environment to make it easier to develop Java with a windows style, similar to Visual Basic but using Java in the buttons action event. Yes?
|
|
|
|
|
MallardsReach wrote: is just an environment to make it easier to develop Yes, it is an Integrated Development Environment, similar to Visual Studio, eclipse etc. It is designed to provide editors and debuggers for different languages, and automatic compilation. The actual final product does not need to beWindows style, although it helps if the IDE also has a visual design feature so you can see the layout of your form as you create it. In the old days you had to write all the Windows code by hand, build and run, before you could see what it looked like.
|
|
|
|
|
I did write code many years ago, Spectum, Amos and VB but so much has changed although still similar, I'm liking Java just need to get used to the syntax.
The IDE does have a design feature so you can set up how it will look when run and then start placing the code in the buttons, checkboxes etc it even has preview design as well.
No doubt I will be back at the forum again but in the mean time Thanks for all the help and guidance.
|
|
|
|
|
You're welcome. Maybe you will be answering questions in the future.
|
|
|
|
|
Hi and thanks for looking,
Just started to learn Java and after reading various tutorials came up with this simple tables program.
My question, is it as it should be? I mean it works OK but is it coded correctly?
import java.util.Scanner;
public class MyTables {
public static void main(String[] args) {
int secondNum, answerNum;
Scanner sc = new Scanner(System.in);
System.out.println("Type a number:");
secondNum = sc.nextInt();
for (int firstNum = 1; firstNum <= 12; firstNum ++) {
answerNum = firstNum * secondNum;
System.out.println(firstNum + " x " + secondNum + " = " + answerNum);
}
}
}
|
|
|
|
|
Looks OK and works, so that should be enough. You may like to use formatting on your output so all table entries are on the same column - currently the x and beyond is shifted right from 10 onwards.
|
|
|
|
|
Thanks for the reply and for the suggestion re formatting.
|
|
|
|
|
books examples of precedures stored for sqlserver 
|
|
|
|