質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NetBeans

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

2200閲覧

NetBeansのボタンでテキストファイルを出力したい

dokodoko486

総合スコア25

NetBeans

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/05/26 22:20

javaのNetBeansについて質問です。
ボタンを押すと、NetBeansでつくったテキストファイルの中身をテキスト領域に表示するようにしたいのですが、調べても分からなくて困っています

教えてください。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sobue

2017/05/27 22:16

具体的なことが伝わってきません。テキスト領域とはどこに表示するつもりですか?コンソール?コンポーネント?おそらくコンポーネントかとは考えていますが・・・ソースを提示してくだい。具体案が出せると思います。
guest

回答1

0

ベストアンサー

ボタンを押すと、NetBeansでつくったテキストファイルの中身をテキスト領域に表示するようにしたい

これは次のようなことをしたいということだと思います。

JavaのGUIアプリケーションにボタンとテキストのコントロールを表示し、ボタンを押すとあるテキストファイルの中身を読み込んでそれをテキストコントロール上へ表示する。

以下を仮定し、簡単な例を載せておきます。

  • packageはcom.example
  • メインクラスはcom.example.MyMain
  • メインクラスのjavaソースと同じ場所にNetBeansでtest.txtというテキストファイルを作成しておく。(エンコーディングはUTF-8)
  • Javaの言語仕様は1.8前提
  • GUIライブラリーはswing前提(※)

java

1package com.example; 2 3import javax.swing.*; 4import java.awt.*; 5import java.io.BufferedReader; 6import java.io.IOException; 7import java.io.InputStream; 8import java.io.InputStreamReader; 9import java.io.StringWriter; 10import java.nio.charset.StandardCharsets; 11 12public class MyMain extends JFrame { 13 public static void main(String[] args) { 14 SwingUtilities.invokeLater(() -> new MyMain().setVisible(true)); 15 } 16 17 JTextArea textArea; 18 19 MyMain() { 20 super("text sample"); 21 22 int rows = 100; 23 int columns = 80; 24 textArea = new JTextArea(rows, columns); 25 JScrollPane scroll = new JScrollPane(textArea); 26 scroll.setPreferredSize(new Dimension(300, 300)); 27 28 JButton button = new JButton("display text"); 29 button.addActionListener(ev -> displayText()); 30 31 JPanel mainPanel = (JPanel)getContentPane(); 32 mainPanel.add(scroll, BorderLayout.CENTER); 33 mainPanel.add(button, BorderLayout.SOUTH); 34 35 setDefaultCloseOperation(EXIT_ON_CLOSE); 36 pack(); 37 } 38 39 void displayText() { 40 InputStream is = getClass().getResourceAsStream("test.txt"); 41 try ( 42 InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8); 43 BufferedReader br = new BufferedReader(isr)) { 44 StringWriter sw = new StringWriter(); 45 br.lines().forEach(line -> { 46 sw.append(line); 47 sw.append('\n'); 48 }); 49 textArea.setText(sw.toString()); 50 } catch (IOException ex) { 51 throw new RuntimeException(ex); 52 } 53 } 54}

※: 最新のJavaの標準GUIライブラリーはJavaFXです。JavaFXだとレイアウトをFXMLファイルへ書くなどサンプルが少々複雑になります。それらを省きコードのみでも書けはするのですが本来の書き方にはならない気がしますので、より単純なswingの例を上げさせていただきました。
GUIを今後学ぶということなら本当はJavaFXの方をお勧めしたほうがよいかも知れません。

投稿2017/05/31 06:41

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問