タイトルから分かるように、JPanelにペイントしてJScrollpane内に表示したいので、JPanelの内容が大きい場合はスクロールバーが表示されます。JPanelでのペイントとJScrollPaneへの追加
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Main extends JFrame{
DrawPanel dp;
JScrollPane jsp;
public Main(){
setTitle("Test");
setSize(400,400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
dp = new DrawPanel();
jsp = new JScrollPane(dp);
getContentPane().add(jsp);
}
public class DrawPanel extends JPanel{
@Override
protected void paintComponent(Graphics grphcs) {
super.paintComponent(grphcs);
Graphics2D g2d = (Graphics2D) grphcs;
g2d.drawString("..long text....long text....long text....long text....long text....long text....long text....long text..", 10, 20);
}
}
public static void main(String[] args) {
new Main().setVisible(true);
}
}
予想される出力::私がすることによってこれを達成しようとしたウィンドウを長いテキストと水平方向のスクロールバーで。
私はgetPreferredSizeメソッドをオーバーライドしてみましたが(他の質問のいくつかの回答が示唆されています)、動作していないようです。 また、jscrollpaneに追加されたパネルにラベルやボタンがあるのにスクロールバーが(jscrollpaneを使用して)表示される理由を説明することはできますが、上記の場合は機能しません。どんな助けでも大歓迎です。
jpanelのサイズを変更する必要があります。 – matt
私はDrawPanelでsetSizeメソッドをオーバーライドすることで同様に試みましたが、次の出力があります。[link](http://imgur.com/a/28xTW) –