|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On January 21 2015 08:18 travis wrote: I am trying to teach myself Java. At the moment I have 3 class files.
How do I call a specific method from one of the class files in a different class file? I don't want to call the whole thing.. I just want to call a specific method!
Is that not possible? Do I have to make yet another class?
I am sorry I know I am very noob. But this is not very intuitive.
This is like what I want to do
class1 {
main{ new class2(); }}
class2{
new method2() }
class3{
method1(){ }
method2(){ } }
I want to call method 2 from class 2. But it doesn't let me do that, it "cannot find symbol".
I don't want to do it by calling method1(which is named after class3), because then it runs everything in the class and I don't want to do everything.
I mean geeze do I need to make a separate class file any time I want to have a method I can call from another class?
I am sorry I know my terminology for all of this is horrible but it's confusing stuff to learn on your own.
you must import your classes.
import MyClass;
Also use Code tags when pasting code.
|
That wasn't really the issue. I am sorry, I was probably very confusing.
Anyways, my issue was that I was simply typing
{ new methodiwanttocall(); }
when apparently I should be using
{ classname newclassname = new classname(); newclassname.methodiwanttocall(); }
does it make sense to me nope. but it works lol
also I don't know what you mean by use code tags
|
code tags are bulletin board code. They allow you to indent and stuff to make the code readable.
{code]{/code] (except the first brackets should be straight brackets)
{ classname newclassname = new classname(); newclassname.methodiwanttocall(); }
|
that's indeed somewhat confusing to read
the
classname newclassname = new classname(); isn't really a new classname as in it's not a new name for it. It is a new classname though, as in you're creating an object of the blueprint you defined earlier, which makes everything a little confusing to read given that you're not using CamelCase and obviously having the word new in the syntax as well 
So basicly when you write down your classes with all the attributes and methods it may have in there, you should consider it something like a blueprint. Like you could code an alarm clock and call the class AlarmClock with methods like setAlarm or snooze. That however is and will stay just that, a blueprint until you create a specific object of what you just coded. You can later create alarm1, alarm2 as well as alarm3 and while they're all the same in design they are different objects. You can set the alarm on the first one to 7am and to 8am on the second one. That's what you're doing there.
So yes, the syntax for the first thing you did with just new *whatever* was wrong. Your correction changes it to how you properly set up a new variable in general: *type* *name* = *something* with *something* being your constructor for your class in this case. While syntactically correct like mentioned below, it shouldn't be what you want to do.
|
On January 21 2015 08:45 travis wrote: That wasn't really the issue. I am sorry, I was probably very confusing.
Anyways, my issue was that I was simply typing
{ new methodiwanttocall(); }
when apparently I should be using
{ classname newclassname = new classname(); newclassname.methodiwanttocall(); }
does it make sense to me nope. but it works lol
also I don't know what you mean by use code tags
your writing is not coherent, but i THINK what you need is a static method, which is a method that belongs to the class and not an instance of the class.
You need to read about the concepts of objetcs and methods, because
new methodiwanttocall(); classname newclassname = new classname();
makes no sense. It will help you understand java much more than trying to type the right letters.
|
Also would be good if you don't leave out stuff like return values and wether or not your methods are private. That could actually be a problem.
|
On January 21 2015 08:32 TMG26 wrote:Show nested quote +On January 21 2015 08:18 travis wrote: I am trying to teach myself Java. At the moment I have 3 class files.
How do I call a specific method from one of the class files in a different class file? I don't want to call the whole thing.. I just want to call a specific method!
Is that not possible? Do I have to make yet another class?
I am sorry I know I am very noob. But this is not very intuitive.
This is like what I want to do
class1 {
main{ new class2(); }}
class2{
new method2() }
class3{
method1(){ }
method2(){ } }
I want to call method 2 from class 2. But it doesn't let me do that, it "cannot find symbol".
I don't want to do it by calling method1(which is named after class3), because then it runs everything in the class and I don't want to do everything.
I mean geeze do I need to make a separate class file any time I want to have a method I can call from another class?
I am sorry I know my terminology for all of this is horrible but it's confusing stuff to learn on your own. you must import your classes. import MyClass; Also use Code tags when pasting code.
You don't call your classes. A class defines a type of object, and you then create instances of it. Once you have an instance you can call methods all day.
But there are exceptions, and if you don't want to create an instance of your class then you can use a static method.
Simply put, the difference is that when you have instances, calling a method will only act on that instance. If you have a static method, it can theoretically affect every instance of that class.
|
On January 21 2015 12:44 meatpudding wrote:Show nested quote +On January 21 2015 08:32 TMG26 wrote:On January 21 2015 08:18 travis wrote: I am trying to teach myself Java. At the moment I have 3 class files.
How do I call a specific method from one of the class files in a different class file? I don't want to call the whole thing.. I just want to call a specific method!
Is that not possible? Do I have to make yet another class?
I am sorry I know I am very noob. But this is not very intuitive.
This is like what I want to do
class1 {
main{ new class2(); }}
class2{
new method2() }
class3{
method1(){ }
method2(){ } }
I want to call method 2 from class 2. But it doesn't let me do that, it "cannot find symbol".
I don't want to do it by calling method1(which is named after class3), because then it runs everything in the class and I don't want to do everything.
I mean geeze do I need to make a separate class file any time I want to have a method I can call from another class?
I am sorry I know my terminology for all of this is horrible but it's confusing stuff to learn on your own. you must import your classes. import MyClass; Also use Code tags when pasting code. You don't call your classes. A class defines a type of object, and you then create instances of it. Once you have an instance you can call methods all day. But there are exceptions, and if you don't want to create an instance of your class then you can use a static method. Simply put, the difference is that when you have instances, calling a method will only act on that instance. If you have a static method, it can theoretically affect every instance of that class.
I don't think that part is true. Class instances should be independent of what their static methods do. On the other hand, static variables do affect all instances of a class.
|
|
On January 21 2015 17:18 darkness wrote:Show nested quote +On January 21 2015 12:44 meatpudding wrote:On January 21 2015 08:32 TMG26 wrote:On January 21 2015 08:18 travis wrote: I am trying to teach myself Java. At the moment I have 3 class files.
How do I call a specific method from one of the class files in a different class file? I don't want to call the whole thing.. I just want to call a specific method!
Is that not possible? Do I have to make yet another class?
I am sorry I know I am very noob. But this is not very intuitive.
This is like what I want to do
class1 {
main{ new class2(); }}
class2{
new method2() }
class3{
method1(){ }
method2(){ } }
I want to call method 2 from class 2. But it doesn't let me do that, it "cannot find symbol".
I don't want to do it by calling method1(which is named after class3), because then it runs everything in the class and I don't want to do everything.
I mean geeze do I need to make a separate class file any time I want to have a method I can call from another class?
I am sorry I know my terminology for all of this is horrible but it's confusing stuff to learn on your own. you must import your classes. import MyClass; Also use Code tags when pasting code. You don't call your classes. A class defines a type of object, and you then create instances of it. Once you have an instance you can call methods all day. But there are exceptions, and if you don't want to create an instance of your class then you can use a static method. Simply put, the difference is that when you have instances, calling a method will only act on that instance. If you have a static method, it can theoretically affect every instance of that class. I don't think that part is true. Class instances should be independent of what their static methods do. On the other hand, static variables do affect all instances of a class.
Yeah that is what I was getting at. If your method is static, it can only affect variables which are static. You can't change any non-static variables or call any non-static methods unless you specify the instance.
But if you have any instance, you can still use it to read or write a static variable, but all instances will be sharing the same value because it is static.
|
|
This is fucking hilarious
Just because a specific part of software is part of the kernel space at creation does not mean it would wish to identify as user space sometime later before its termination. [...] To alleviate this, ToleranUX replaces the outdated concept of "occupied virtual memory" with the ideal of "Suggestions of Space" (SoS).
Oh and that poor, poor Linux penguin turned transvesguin
|
How do websites implement like-systems? For logged in users I suppose you keep a table mapping users to liked items, but it seems like an awful lot of data to process every time someone views a likeable item. And what about non-logged in users? Do you track IP-addresses and map them the same way? Or do you just use session and not care about being able to like again when it expires?
|
On January 21 2015 22:51 FreeZer wrote: How do websites implement like-systems? For logged in users I suppose you keep a table mapping users to liked items, but it seems like an awful lot of data to process every time someone views a likeable item. And what about non-logged in users? Do you track IP-addresses and map them the same way? Or do you just use session and not care about being able to like again when it expires?
Depends a lot on the use-case.
If users can like a lot of stuff then a database stored solution that is checked when showing likeable items is a common option. When there are only a limited amount of likes then, for authenticated users, it's often read on session initialization (e.g. login) and then maintained in session and in storage simultaneously or updated on storage and then re-read from it into the session.
For users that are not logged in it's usually a session/cookie since IPs aren't unique for many users, especially in a target group that contains students that often use the website through the network of their university.
Without the use-case it's hard to say what the best solution would be.
|
|
ok I downloaded the free electronic version of thinking in java
in the meantime I have another java question Let's say I am using drawstring to draw strings to a jpanel the strings that I am drawing are variables how do I go about having these strings properly format within the frame? right now, if the variable is a long string, it will just keep writing and writing on one line right off the frame. but i want it to wrap to the next line of the frame when that is appropriate
|
On January 22 2015 06:26 travis wrote: ok I downloaded the free electronic version of thinking in java
in the meantime I have another java question Let's say I am using drawstring to draw strings to a jpanel the strings that I am drawing are variables how do I go about having these strings properly format within the frame? right now, if the variable is a long string, it will just keep writing and writing on one line right off the frame. but i want it to wrap to the next line of the frame when that is appropriate If you use a JTextPane the text should wrap by it self.
http://www.java2s.com/Code/Java/Swing-JFC/JTextPaneStylesExample1.htm
|
ok thanks. new question
I am trying to place images symmetrically in my jframe the images are 120 by 120. so i want a jframe with x width 400 so i can have a space of 10 pixels on either side of each image (120*3) and (10*4).
but jframe dimensions seem to include something else like the border around the frame or something because it just isn't lining up.
is there an easy way to set the dimensions of the INSIDE of my JFrame ?
I am guessing I am going to have to do something like put some component in there and make the frame size pack to that component (is my terminology right?).
But is there an easier way anyways?
|
On January 22 2015 07:44 travis wrote: ok thanks. new question
I am trying to place images symmetrically in my jframe the images are 120 by 120. so i want a jframe with x width 400 so i can have a space of 10 pixels on either side of each image (120*3) and (10*4).
but jframe dimensions seem to include something else like the border around the frame or something because it just isn't lining up.
is there an easy way to set the dimensions of the INSIDE of my JFrame ?
I am guessing I am going to have to do something like put some component in there and make the frame size pack to that component (is my terminology right?).
But is there an easier way anyways?
//edit// actually no, link was right because it's just an extended version so putting that back in:
A Frame is a top-level window with a title and a border. The size of the frame includes any area designated for the border. The dimensions of the border area may be obtained using the getInsets method. Since the border area is included in the overall size of the frame, the border effectively obscures a portion of the frame, constraining the area available for rendering and/or displaying subcomponents to the rectangle which has an upper-left corner location of (insets.left, insets.top), and has a size of width - (insets.left + insets.right) by height - (insets.top + insets.bottom).
A frame, implemented as an instance of the JFrame class, is a window that has decorations such as a border, a title, and supports button components that close or iconify the window. Applications with a GUI usually include at least one frame. Applets sometimes use frames, as well.
http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html
|
ok, I figured that was what was going on.
I figured out my solution, it was actually pretty simple. I was already painting the images to a jpanel and then adding that to my jframe anyways. What I needed to do was use setPreferredSize(new Dimension(400, 600)); on my jpanel, and then use pack(); on my jframe so that the inner frame matched the jpanel! yay !
|
|
|
|