No.2ベストアンサー
- 回答日時:
こんにちは。
なんか難しいことをしないといけないのかと思っていたら、そのものずばりのメソッドがありました。
AbstractButtonのsetBorderPainted(boolean b)を使うとよさそうです。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/ja …
やってみたら、Look&FeelがMetalの場合は、枠線が残って、少しかっこ悪そうなので、枠線を消してみたりいろいろしてみたのですが、いまいちしっくりきません。
Look&FeelがWindowsの場合が、一番、それっぽい感じになりそうです。
とりあえず、いろいろ試行錯誤してみてください。
どうしてもしっくりいかないようなら、カスタムボタンを自作してみるという手もあるかもしれません。
import javax.swing.*;
import java.awt.*;
public class ButtonTest extends JFrame {
CanvasPanel panel;
JButton button;
public static void main(String[] args) {
//Look&FeelをWindows風にしてみたらいい感じかも。
/*
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch (Exception ex) {}
*/
ButtonTest frame = new ButtonTest();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setVisible(true);
}
public ButtonTest() {
panel = new CanvasPanel();
getContentPane().add(panel, BorderLayout.CENTER);
button = new JButton("Test");
//これが透けるメソッド
button.setContentAreaFilled(false);
//↓枠線が邪魔な場合は消してみたりしてみる。
//button.setBorderPainted(false);
panel.add(button);
}
class CanvasPanel extends JPanel {
Image image;
public CanvasPanel() {
image = Toolkit.getDefaultToolkit().getImage("Test.jpg");
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
}
}
}
参考URL:http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/ja …
ご回答ありがとうございます。
javaプラットフォームのリファレンスで、目的のようなメソッドがあるのか探したのですが、setBackground,などの方ばかり目に付いて、どうやら見落としていたようです。
枠線を操作する
setBorderPainted(boolean b)
は知っていたのですが、
ずばり、ボタンの背景を消すようなメソッド、
setContentAreaFilled(boolean b);
があったんですね。
あまりにも単純な質問で申し訳ありませんでした。
No.1
- 回答日時:
こんにちは。
どうも具体的にどのようにしたいのかイメージがわきません。
ボタンを透けさせて、その先に何が見えるようになればいいのですか?
1.親コンテナの背景色を見せたい。
(これは普通のボタンと大して変わらない)
2.親コンテナに絵が描いてあり、それを見せたい。
3.親コンテナの中でコンポーネントが重なっていて、向こうにあるコンポーネントを見せたい。
4.完全に透け透け、ウインドウに穴が開いてるように見せたい。
(ウェブのどこかにそんな感じのやり方が書いてあったような気がするが、すごく難しそう)
そもそもJButtonを使うべき場合なのかも、よくわかりません。
もう少し、補足をお願いいたします。
この回答への補足
すみません、説明不足でした。
やりたいのは、
2.親コンテナに絵が描いてあり、それを見せたい。
です。
ボタンには、角が丸い長方形の絵が描いてあり、その角の部分に、親コンテナ(ウィンドウ)に描いてある絵を透けさせたいと思っています。
Javaをはじめたばかりなので、どのようなことを補足すればよいのかあまり分かりません。
Javaのバージョンは1.5.0で、OSはwindowsXPです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) ペイントで切り抜いた画像の背景を透明に 2 2022/09/15 10:20
- Photoshop(フォトショップ) フォトショップで切り抜いた画像を透明にするには 3 2022/09/15 11:50
- Photoshop(フォトショップ) 【至急】 ウェブサイトやアプリとかでよく見かける、添付画像のように背景にあるものをぼかしつつ透過する 2 2023/07/17 10:57
- HTML・CSS 角丸画像の背景色を透明にしたいです 1 2023/06/23 23:15
- Illustrator(イラストレーター) Illustratorから印刷すると画像が白くなっててきれいに印刷出来ず、透明背景効果にしてみて確認 1 2022/06/14 17:26
- Illustrator(イラストレーター) Illustratorで白い部分のみを透過させたいです。 2 2022/10/10 22:27
- その他(パソコン・スマホ・電化製品) ボカシ切取りした写真の背景の透明化 5 2022/10/18 14:38
- Word(ワード) オフィスのワードで背景の色を無くす方法 3 2022/12/04 13:34
- Photoshop(フォトショップ) フォトショップで背景をくり抜く方法 2 2022/05/14 12:39
- Photoshop(フォトショップ) photoshopについて このサイトにあるような方法を背景透過している画像にやると、雷を纏ったよう 1 2022/06/17 18:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0でのTextboxの高さ変更
-
JPanelの切り替えと再描画
-
javaで文字数制限するには?
-
次のように書いたのですが、ウ...
-
エラーで式の開始が不正ですと...
-
java junit list同士の比較方法
-
Java-Swing TextAreaにスクロー...
-
JDialogを閉じた時の処理
-
キャレットの幅を設定したい。
-
c言語のプログラミングで1から1...
-
JButton-背景の透明化
-
KeyListenerの使い方について
-
Buttonを押すと画像が表示され...
-
コンパイルエラー <identifier...
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
変数を動的に利用するには?
-
1~100までの数字を表示し、か...
-
flush()とclose()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JTableの列ヘッダ
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
コンパイルエラー <identifier...
-
JPanelの重ね方/OverlayLayout他
-
JPanelの切り替えと再描画
-
エラーで式の開始が不正ですと...
-
JTable の 列幅を個別に設定す...
-
VB6.0でのTextboxの高さ変更
-
連番をオブジェクト名の最後に...
-
ボタンクリック後パネルを再描...
-
JavaでのSwingを使った簡易電卓...
-
ArrayListの使い方について(初...
-
Buttonを押すと画像が表示され...
-
あるコンボボックスを選択する...
-
KeyListenerの使い方について
おすすめ情報