Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
Not all code is developed in the same environment. Let's learn how to bring in outside project into our shiny new IDE.
Project Files
- In the course downloads zip file, use the Karaoke Project
Additional Reading
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
Okay, so remember that quiz
question from a previous
0:01
course where I asked about a dunk tank?
0:03
Well some of you didn't know
what that was and I apologize.
0:05
It's a carnival game where someone
sits over a pool of water on a shelf.
0:08
The carnival-goer buys the balls and
they throw it at the target.
0:12
If they hit the target,
the person falls into the water.
0:16
Now I'm sure you're imagining
putting me on that dunk tank and
0:20
throwing the ball and
having me dunked into freezing cold water,
0:23
because I didn't show
you these tools earlier.
0:27
But, before you get too upset at me, let's
take a second to appreciate that you were
0:29
able to code in Java without these tools.
0:33
You didn't need these training
wheels on your editor.
0:36
Let's be honest, most of the warnings
wouldn't have made any sense to you at
0:38
all until you got started.
0:42
Now, that being said though,
you can totally dunk me.
0:44
I'm sure I deserve it.
0:47
I did make you type a lot more than you
would have to in a real world situation.
0:48
So let's just say at this point, I
definitely owe you three dunk tank balls.
0:52
Alright, so let's import that very
long project that you painstakingly
0:56
completed without code assistance in
the previous course, the karaoke machine.
1:01
I want to show you how to bring outside
code into this new world order.
1:06
Okay, so I've included a zip file of
1:10
the source code from the final
project in the teacher's notes.
1:13
If you want to get your own version, just
go to your workspace and choose File >
1:16
Download Workspace, and that will send
down a ZIP file that you can then open up.
1:20
So what I've done is I've downloaded
that ZIP file, I've unzipped it, and
1:24
now I have that source code in a folder.
1:26
Here it is.
1:28
Now, since we're just hand
coding like this and there isn't
1:30
any additional project information,
let's first just create a new project.
1:32
Okay.
So, the way that you do that is,
1:37
in IntelliJ you choose
File > New > Project.
1:38
Okay.
And this is very much like the Create New
1:43
Project that we saw before, and we wanna
just leave it, the Project SDK the same.
1:45
We don't wanna do a template, right?
1:50
Because we've already got our code that
we need, so we're just gonna go ahead and
1:51
leave that unchecked.
1:54
And we're gonna call this Karaoke.
1:56
Okay.
So, it's possible to have multiple windows
2:01
open with different editors and
that's what this prompt is asking.
2:04
It's asking if we want to replace this
window or if we wanna make a new one and
2:07
have them side by side.
2:11
For our case,
we're just gonna use this one.
2:12
So what it's gonna do is it's gonna get
rid of the systemizer window that we have
2:14
and we're gonna put up the karaoke window.
2:17
Cool.
2:20
So, this is an empty project.
2:21
By default, the project is set
up in a directory based format.
2:24
When creating a project,
a default module is added for us, and
2:27
that's what this is here, this karaoke.
2:31
Now a module in IntelliJ is defined
as a discreet unit of functionality.
2:33
Modules contain everything that is
required for their specific task, and
2:38
they come with an .idea folder.
2:43
This .idea folder.
2:44
It contains files about how
you like your editor setup.
2:46
They also have an IML file here, and
2:49
it keeps project specific
settings in one place.
2:51
The .iml suffix stands for idea module,
and the fact that all the settings are in
2:54
a file like this, it makes sure
that teams can have the same setup.
2:59
So I could share this with somebody
else and this setup would be the same.
3:02
There's a little icon on this folder here,
on the karaoke folder here of this module.
3:06
And that's saying that it's the content
root folder. This source folder here
3:11
is short for source code.
3:16
And it's blue you'll notice, and that blue
represents that it's the source root.
3:18
All other folders are sort of orange and
yellow like that.
3:22
If you're working with other projects from
idea users or even Eclipse projects,
3:26
you can actually import
things really easy.
3:30
So, you could get these IML files
from other people like I was saying.
3:32
But what I wanna show you here
first is that when you don't
3:36
have an existing idea project to import,
like we don't currently, right?
3:39
Our karaoke project is hand-coded.
3:42
You can imagine this as kind of converting
or upgrading to an idea project.
3:44
These idea projects respond really
well to dragging and dropping.
3:49
So, I'm gonna go ahead and I am gonna
grab the karaoke folder and our packages.
3:53
And I'm gonna drag those and
3:59
I'm gonna just click right inside
the source file here, okay?
4:01
And it's gonna go ahead and
say move the specified references and
4:05
that's fine, right?
4:07
Cuz that was just a zip folder that I had.
4:08
So I'm just gonna go ahead and move them.
4:09
And it says open the moved
files in the editor.
4:11
Sure, why not?
4:13
Okay, and
it says they don't belong to the project.
4:15
Okay I understand that.
4:18
I'm moving them.
4:19
And finally, I'm gonna bring this
songs.txt to the content root.
4:22
Right?
So I'm gonna put it here.
4:27
When we end up running this later and
4:28
again it asks for
the same things here again.
4:30
Before we were running right from
the start of the directory and
4:32
this is relative.
4:36
We'll explore this a little bit in
the future when we go to run this.
4:37
But I just wanted to point out that we
don't want to drop it into source code
4:41
folder, we're gonna put it in the content
root, and I'll show you why here in a bit.
4:44
Okay, so, I really wanna show you
something that's gonna make you happy.
4:47
So, you can set up these
different formatting rules.
4:52
So, here's our Song.java file.
4:55
Now let's say that when we were coding,
4:57
we weren't the cleanest about things
about things that we kind of did.
4:59
We move this over, got a warning up
here about the file is indented with
5:03
two spaces instead of four, and that's
kind of the default here, in this world.
5:09
And this is nice, right?
5:12
Cuz if you have different team
members working on different things.
5:14
So, I'm just gonna screw up the spacing
a little bit because, you know,
5:16
we were rushing to get through this
before and the spacing wasn't quite done.
5:19
So, let's go ahead and
come up here to code.
5:23
And if you look down here in this code,
there's this Reformat code,
5:28
and that is Option+Command+L on a Mac.
5:35
So I'm gonna go ahead and
I'm gonna click that.
5:39
Watch what it does.
5:40
Boom.
Everything got set the proper way and
5:42
now it's also at four spaces.
5:44
But look,
everything's back to where it was.
5:45
So, I am gonna do that again and
I'm gonna do that again and
5:47
we'll just bring this guy.
5:51
It's pretty good at not
letting me screw those up.
5:54
So, I'm going to Option+Command+L and
everything is back to normal.
5:57
So it's Ctrl+Alt+L in Windows.
6:02
That's great.
6:03
But what if I knew that I
remembered doing that one time, but
6:04
I can't remember where it's at?
6:08
So there's a great feature in
IntelliJ whic will be your friend,
6:09
especially when you're learning this.
6:12
If you press Cmd+Shift+A, or
Shift+Ctrl+A on Windows, and you choose.
6:14
I know it wasn't Reformat.
6:22
There it is, Reformat Code.
6:25
And then, boom.
6:26
And it will do it.
6:27
And I have to break anything,
let's break something real quick.
6:29
So, Control+Shift+A, Reformat Code,
boom, that fixed it.
6:34
Great, right?
6:38
So, we just did this file, but let's go
ahead and open up another file over here.
6:39
Let's open up Songbook.
6:44
So we can go ahead and
reformat the entire package.
6:46
So, if I come up here to the source
folder and I say Reformat Code,
6:50
we're gonna include subdirectories and
we're gonna leave Optimize Imports, right?
6:57
So that's gonna remove any imports that
we didn't use, cuz that can happen, and
7:01
we're also gonna choose Rearrange Entry.
7:05
So, I'm gonna click Run.
7:07
So, now all the files, and
7:10
we can open them up by clicking
on them over here, are done.
7:12
You also notice there's
some of these pluses.
7:16
This is here to kind of help you read your
code quicker, but I'm gonna open this up.
7:18
One more thing I wanted to show you really
quick is, on the imports over here,
7:23
remember we put the dot star, and
I told you it was a little bit lazy?
7:26
Well let's go ahead and let's put our
cursor here and let's see what happens.
7:30
Look, there's a little thing
that popped up over here.
7:32
This light bulb is called
an intention action.
7:34
What happens with these intention
actions are they're suggestions
7:37
of what could happen.
7:40
So, let's go ahead and open this up and it
says, replace with single class imports.
7:42
That's great,
that's exactly what we wanted.
7:46
We just didn't want to have to type
all those out, so let's do that.
7:47
And what it did was it took an
alphabetized order of everything that we
7:50
used in here that was under that star.
7:54
Pretty powerful tool, isn't it?
7:56
Okay, we learned a ton there.
7:58
And as I'm sure,
8:00
you saw when you opened that menu up,
there are a lot more actions in there.
8:01
We definitely aren't gonna hit all of
those, but in a bit, I'll show you how
8:04
awesome the documentation is for
the IntelliJ Idea Project.
8:08
You can dive in at your own pace.
8:12
So let's go ahead and
take a quick break and I'll swing back and
8:14
show you how to run our application.
8:16
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up