 So, if we're working in Eclipse, what we want to do, again, if we have Eclipse FX installed is we kind of give it a name, my Java FX demo, and again, our GUIs need to inherit from application. Now, if I look at inheritance, and I start to type out application, you're going to see I get a number of options. Don't just immediately click OK. I'm looking for the Java FX application. That's what I'm dealing with right now. I say OK, and we'll go ahead and throw in the main method just on that safe side of things. I like to always do that. But as we build this out, ta-da, we've got a GUI. It does nothing. Yay. Now, I'm going to do one thing. I'm going to change that to primary stage just to kind of clean that up. I actually don't need a constructor either, and I'm going to expand that out. Notice I already have sort of some of the elements that I'm dealing with. So, which ones do I want to go ahead and work with? Well, I said that I want to go ahead, and I'm actually going to add in first this LaunchArms. Now, what does launch mean? Well, again, we are inheriting from an application class. That application class has a launch method that then in turn grabs the start method that we implement, and it does something for that. So now, let's actually do something for that. Right now, it does nothing. If I run this, for example, you see I get nothing. There's nothing going on here, so it at least works. So again, what I want to go ahead and do is I want to make a button, and we'll just call it btnok equals new button. Now, one thing you might notice is first off, I'm saying btnok. We're going to be dealing with a lot of GUI components eventually. So what we want to do is we want to go ahead and at least say what kind of component this is. That just gives us a better naming scheme. But again, you notice that there's a little error message here. Well, here's the beauty of Eclipse. Oh, hey, button can be resolved. Do you want to import it? Yes, I do. I happen to want to import it from javafx.sign.control, not awt, not awt, that's old stuff, and it adds it in. Now, I can work from there. Again, I want to build my scene equals new scene, and I want to put my button into it. I'm going to say 500 by 200. That way we can see true dimensions as we go through this. Now again, I get an error message. Well, why? Oh, because scene is not being imported, so guess what? We import it again. We get that again, and now we start to deal with the primary stage. The primary stage has something called, well, it has a method, and actually I'm going to take a second. I mean, I've typed out primary stage. Now, I'm going to hit that dot, that period. Notice all the stuff that I see going on here. Right now, there's a lot of methods for a stage, and we're not going to go over every single one of these, because as you can tell, there's a lot of them. But one of the ones that we can deal with, notice we have a lot of setters. One of those setters is something like set title, and I can give it a title. So I'm going to say my first Java FX program. Yay! I'm going to keep on going with this. The next thing I need to do is I'm actually going to come in here and do another set, because if we look at those sets again, right now I've made a scene that has my button, but think of it again like a play. They're rehearsing in the back right now. I need to put them on stage. I have not at any point in time said, make my scene go to my stage. Wishful thinking. I have to say that. I have to say, set my scene as my scene. Then again, that draw curtain is kind of showing up, so I then have to do my primary stage dot show, and as we can kind of see, attempts to show this window by setting visibility to true. Now, again, that's like the draw curtain, so we start with a little drum roll, and when we compile and run this, yay! Look at that. We get our gooey, and it's one giant button. Now I click on it, it does nothing. We'll get to that later, but I've now added a button to my gooey. I now have a fully functioning gooey, ooh, pretty. Now again, if we take a look at that 500, that refers to my width, notice how long that is, and this 200 refers to my heighten. If I want, I can adjust this as I see fit. We'll learn how to force them not to do that later, but you can see my button takes up everything. So how can I clean this up? This is where we're going to introduce something known as a pane, and the way you can think about a pane, I'll just call it pane equals new pane, which I know sounds confusing, but this new pane, think of it like a window pane. I have a window pane, and then I might have a wall, and then I might have another window pane, or I might have a stained glass pane. That's what I'm dealing with right now, is I've just got different little segments I can put into my scene. So again, I have to import this. One of the things that is a little weird, and this is where things get a little wonky, but I have to do pane.getchildren. Now, notice what's appearing here, getchildren, observable list. Why I mention this is we've already kind of dealt with something very similar. We've dealt with something called an array list. An array list is, well, it's a list of whatever data type you specify. This is an observable list of all of the different nodes, we'll learn about nodes in a second, of my pane. What I say is when I do that, that in itself basically gives me that list. What I want to do with that list is I'm actually going to throw another dot on this. Just like you see I have dots up here, I can have dot, dot, dot. I'm going to do another dot right here, and look what happens. I get another few elements, just like when I was dealing with an array list, I have things like add, clear, contains, contains all, new weight, to array. I have all these elements, add with integer and node so I can say kind of their order. Now, I'm going to just say add, and instead of our, I'm going to make my button go to there. Then instead of btn okay, I'm going to come in here and say my pane is what gets added. Now, I don't have anything else, so let's see what happens. Now you can notice, look at what occurs. My button is right there at the top left of my screen. How can I get with, move that around a little bit? That's where we get into dealing with geometry.