重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!goo新規会員登録

現在javaでゲームのスタート画面を作っているのですが、パネルが透過されずに困っています。

プログラムソースは
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Container;
import java.awt.BorderLayout;

import javax.swing.*;
import java.awt.Font;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.*;
import java.awt.event.*;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Container;
import java.awt.BorderLayout;

import javax.swing.border.LineBorder;
import javax.swing.border.EtchedBorder;
import java.awt.Color;
import java.awt.Container;



class Start最新版 extends JFrame{
public static void main(String args[]){
Start最新版 frame = new Start最新版("タイトル");
frame.setVisible(true);
}

Start最新版(String title){
setTitle(title);
setBounds(10, 10, 1024, 768);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel p = new JPanel();

p.setOpaque( false );

ImageIcon icon1 = new ImageIcon("Start.jpg");

JLabel label1 = new JLabel(icon1);

JLabel label2 = new JLabel();


p.add(label1);


Container contentPane = getContentPane();
contentPane.add(p, BorderLayout.CENTER);

JButton button1 = new JButton("ゲームを始める");
button1.setFont(new Font("Mairyo", Font.PLAIN, 30));

JPanel n = new JPanel();
n.setOpaque(false);
n.setLayout(new BoxLayout(n, BoxLayout.Y_AXIS));

n.add(Box.createRigidArea(new Dimension(290,30)));
n.add(button1);

となっています。「ゲームを始める」ボタンだけを残して、周りのパネルを透過して画像を表示させたいのですが、うまくいきません!解決方法をご存知の方どうか教えていただきたいです!よろしくお願いします。

※添付画像が削除されました。

A 回答 (1件)

コードが途中で切れていますね。



new JButton("ゲームを始める");を組み込んであるJPanelがどこにどう組み込まれているのか書かれていません。ここがポイントでしょうから……。

それと、「周りのパネルを透過して画像を表示させたいのですが」とありますが、画像そのものはウインドウ全体を覆うほどのサイズが用意されているのですね? 画像がそこで切れてるから、その下は余白のまま、ということはないのですね?

また、背景の画像はどこでどう表示していますか? それもコードにないので描画処理をどうしているかわからないのですが……。(ひょっとしてこれ、ImageIconってわけないですよね?)


以上、足りない部分のコードまで含めて補足してもらえますか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!