// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= NetBeans IDE 6.9.1でのJavaコードの編集
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDE 6.9.1でのJavaコードの編集 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDE 6.9.1でのJavaコードの編集

|===
|これは、NetBeans IDE 6.9.1のJavaエディタで単純なJavaアプリケーションを作成する方法について説明した、6.9のためのデモの撮り直しです。

このスクリーンキャストでは、コード補完、コード・テンプレート、エラーのヒントなどの、エディタの生産性を向上させる機能の使用方法を確認できます。IDEのJavaエディタの機能を効果的に使用する方法を学びます。

作成者: Irina FilippovaおよびVita Stejskal
時間: 12:09

link:http://bits.netbeans.org/media/javaeditor.swf[+今すぐ視聴(.swf)+] ([Ctrl]を押しながらクリックするとダウンロード、79MB)

link:http://bits.netbeans.org/media/nb69-code-completion-screencast.mp4[+今すぐ視聴(.mp4)+] ([Ctrl]を押しながらクリックするとダウンロード、34MB)

右側でのスクリーンキャストの表示で問題が発生する場合は、開始する前に、スクリーンキャストをダウンロードできます。または、上のリンクをクリックして、スクリーンキャストのフルサイズ・バージョンを表示できます。


== 関連リンク

* link:../intro-screencasts.html[+NetBeans IDE 6.9のガイド・ビデオ・ツアー+]
* link:https://netbeans.org/kb/index.html[+NetBeans IDEチュートリアル: 一般的なJava開発+]
* link:https://netbeans.org/kb/index.html[+NetBeans IDEドキュメント+]
link:/about/contact_form.html?to=3&subject=Feedback: Editing Java Code in NetBeans IDE 6.9.1 Screencast[+このチュートリアルに関するご意見をお寄せください+]
 |         
|===
