2016-11-18 24 views
0

私はJavaでブラウザを作ろうとしていました。ユーザーがウェブサイトのコンテンツをスクロールできるようにしたかったのです。 JPanelをJScrollPaneに配置しようとしましたが、JPanelが表示されませんでした。この問題が発生した後、この問題をテストするための新しいJavaプロジェクトを作成しましたが、問題はまだ発生しました。ここで は、テストプロジェクトのコードです:JScrollPaneにJPanelが表示されない

package exp; 

import java.awt.Color; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 

public class test { 
    public static void main(String[] args) { 
     JFrame f = new JFrame("test"); 
     JScrollPane s = new JScrollPane(); 
     JPanel p = new JPanel(); 
     s.add(p); 
     f.add(s); 
     f.setVisible(true); 
     f.setSize(800, 600); 
     p.setBackground(Color.WHITE); 
     p.getGraphics().drawString("test", 50, 50); 

    } 
} 

これは、表示されたものです: This is what the code dipslayed

答えて

6
JScrollPane s = new JScrollPane(); 
JPanel p = new JPanel(); 
s.add(p); 

スクロールペインに直接コンポーネントを追加しないでください。スクロールペインのviewportにコンポーネントを追加する必要があります。

JPanel p = new JPanel(); 
JScrollPane s = new JScrollPane(p); 

または

JPanel p = new JPanel(); 
JScrollPane s = new JScrollPane(); 
s.setViewportView(p); 

は塗装を行うにはgetGraphics(...)メソッドを使用しないでください:あなたは使用してこれを行う

// p.getGraphics().drawString("test", 50, 50); 

あなたはJPanelpaintComponent()メソッドをオーバーライドする必要があり、パネルをフレームに追加します。詳しくは、Custom PaintingのSwingチュートリアルのセクションを読んでください。

すべてのSwingの基本については、このチュートリアルへのリンクを便利にしておいてください。

+0

ありがとう –

関連する問題