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

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

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

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

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

Q&A

解決済

1回答

2921閲覧

java スクロールバーの配置について

fmams1994

総合スコア12

Java

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

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

0グッド

0クリップ

投稿2015/07/08 15:23

画像を傾けて表示させるプログラムを作成しました

続けてフレームの右と下にスクロールバーを配置させたいのですがどうすればよいのかがわかりません。よろしくお願いします。

lang

1import java.awt.Graphics; 2import java.awt.Graphics2D; 3import java.awt.geom.AffineTransform; 4import java.awt.image.BufferedImage; 5import java.io.File; 6 7import javax.imageio.ImageIO; 8import javax.swing.JFrame; 9 10public class ImageKatamukeKairyou2 extends JFrame{ 11 public static void main(String[] args){ 12 ImageKatamukeKairyou2 test = new ImageKatamukeKairyou2(); 13 test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 14 test.setBounds( 0, 0, 1000, 700); 15 test.setTitle("画像表示"); 16 test.setVisible(true); 17 } 18 19 public void paint(Graphics g){ 20 Graphics2D g2 = (Graphics2D)g; 21 22 BufferedImage readImage = null; 23 try { 24 readImage = ImageIO.read(new File("2.jpg")); 25 } catch (Exception e) { 26 e.printStackTrace(); 27 readImage = null; 28 } 29 30 if (readImage != null){ 31 int sw = getWidth();//画面の幅を取得 32 int sh = getHeight();//画面の高さを取得 33 int iw = readImage.getWidth(this);//イメージの幅を取得 34 int ih = readImage.getHeight(this);//イメージの高さを取得 35 int x = (sw-iw)/2;//イメージが横中央になる位置を計算 36 int y = (sh-ih)/2;//イメージが縦中央になる位置を計算 37 38 g2.clearRect(0, 0, sw, sh); //画像枠外の背景を塗り潰す 39 AffineTransform at = new AffineTransform(); 40 at.setToRotation(Math.toRadians(45), sw/2, sh/2); 41 g2.setTransform(at); 42 g2.drawImage(readImage,x,y,this); 43 } 44 } 45}

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

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

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

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

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

guest

回答1

0

ベストアンサー

時間がかかってしまいましたが、それっぽく動くものができましたので書いておきます。

原型を留めてなくてすみません。

lang

1import java.awt.*; 2import java.awt.geom.*; 3import java.awt.image.*; 4import java.io.*; 5import javax.imageio.*; 6import javax.swing.*; 7 8public final class RotateImagePanel extends JPanel { 9 10 public RotateImagePanel() { 11 setPreferredSize(new Dimension(2400, 2400)); 12 } 13 14 @Override 15 protected void paintBorder(Graphics g) { 16 Graphics2D g2 = (Graphics2D)g; 17 BufferedImage readImage; 18 try { 19 readImage = ImageIO.read(new File("2.jpg")); 20 } catch (Exception e) { 21 e.printStackTrace(); 22 return; 23 } 24 AffineTransform at = AffineTransform.getRotateInstance(Math.toRadians(45)); 25 g2.drawImage(readImage, at, this); 26 g2.dispose(); 27 } 28 29 public static void main(String[] args) { 30 SwingUtilities.invokeLater(new Runnable() { 31 public void run() { 32 JFrame test = new JFrame(); 33 test.setSize(800, 600); 34 test.setTitle("画像表示"); 35 test.setLayout(new BorderLayout()); 36 test.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 37 RotateImagePanel p = new RotateImagePanel(); 38 JScrollPane sp = new JScrollPane(p, 39 ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, 40 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); 41 test.add(sp, BorderLayout.CENTER); 42 test.setVisible(true); 43 } 44 }); 45 } 46 47}

投稿2015/07/25 02:22

argius

総合スコア9388

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

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

fmams1994

2015/08/04 06:28

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問