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

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

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

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

Q&A

解決済

1回答

636閲覧

画像が一部切れてしまいます

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2018/06/23 07:54

編集2018/06/24 06:25

前提・実現したいこと

グッズの管理ツールを作っています。
こんな感じのレイアウトにしたいです。

発生している問題・エラーメッセージ

サイズを固定すると縮小がうまくいかず、上下左右切れてしまいます。
全部表示するにはどうしたら良いでしょうか?

該当のソースコード

Java

1package goods; 2 3import java.awt.Color; 4import java.awt.Dimension; 5import java.awt.Graphics2D; 6import java.awt.Toolkit; 7import java.awt.image.AreaAveragingScaleFilter; 8import java.awt.image.BufferedImage; 9import java.awt.image.FilteredImageSource; 10import java.awt.image.ImageFilter; 11import java.awt.image.ImageProducer; 12import java.io.File; 13import java.io.IOException; 14 15import javax.imageio.ImageIO; 16import javax.swing.BoxLayout; 17import javax.swing.ImageIcon; 18import javax.swing.JLabel; 19import javax.swing.JPanel; 20import javax.swing.JTextArea; 21 22public class Goods extends JPanel { 23 Goods(String imagePass, String title, String goodsName, String person) throws IOException { 24 setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 25 JLabel photo; 26 if (imagePass == null) { 27 photo = new JLabel(); 28 } else { 29 System.out.println(imagePass); 30 photo = new JLabel(new ImageIcon(scaleImage(new File(imagePass), 0.5))); 31 } 32 photo.setOpaque(true); 33 photo.setBackground(Color.WHITE); 34 photo.setHorizontalAlignment(JLabel.CENTER); 35         photo.setMaximumSize(new Dimension( 200, 300)); 36 add(photo); 37 JTextArea titleLabel = new JTextArea(title); 38 titleLabel.setMaximumSize(new Dimension( 200, 20)); 39 titleLabel.setEditable(false); 40 titleLabel.setLineWrap(true); 41 add(titleLabel); 42 JTextArea goodsNameLabel = new JTextArea(goodsName); 43 goodsNameLabel.setMaximumSize(new Dimension( 200, 20)); 44 goodsNameLabel.setEditable(false); 45 goodsNameLabel.setLineWrap(true); 46 add(goodsNameLabel); 47 JTextArea personLabel = new JTextArea(person); 48 personLabel.setMaximumSize(new Dimension( 200, 20)); 49 personLabel.setEditable(false); 50 personLabel.setLineWrap(true); 51 add(personLabel); 52 setOpaque(false); 53 } 54 55 public static BufferedImage scaleImage(File in, double scale) throws IOException { 56 BufferedImage org = ImageIO.read(in); 57 ImageFilter filter = new AreaAveragingScaleFilter((int) (org.getWidth() * scale), 58 (int) (org.getHeight() * scale)); 59 ImageProducer p = new FilteredImageSource(org.getSource(), filter); 60 java.awt.Image dstImage = Toolkit.getDefaultToolkit().createImage(p); 61 BufferedImage dst = new BufferedImage(dstImage.getWidth(null), dstImage.getHeight(null), 62 BufferedImage.TYPE_INT_RGB); 63 Graphics2D g = dst.createGraphics(); 64 g.drawImage(dstImage, 0, 0, null); 65 g.dispose(); 66 return dst; 67 } 68} 69

試したこと

以下のサイトを参考にしました。
Java - 【Java】画像のリサイズについて(64310)|teratail

補足情報(FW/ツールのバージョンなど)

  • Java version "1.8.0_40"
  • eclipse Version: Mars.1 Release (4.5.1)

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

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

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

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

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

m.ts10806

2018/06/23 23:53

「画像が切れる」とはどういう現象でしょうか。実際の画像サイズと起きている現象が分かる画面キャプチャもご提示いただけますか?
guest

回答1

0

ベストアンサー

投稿2018/07/01 04:25

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問