2

私のフレームにはいくつかの Jpanel があり、パネルの 1 つが選択されると、それが強調表示されるという考えです。これは最初のステップにすぎません。最終的には、パネルで機能するボタンを使用できるようにしたいのですが、強調表示されているボタンだけです。

パネルにある種のマウスリスナーが必要だと考えていますが、これを実装して必要な結果を得る方法がわかりません。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.Border;

public class CustomComponent {
    Border emptyBorder  = BorderFactory.createEmptyBorder(1,1,1,1);
    Border selectBorder = BorderFactory.createLineBorder(Color.blue);
    JPanel[] panels;

    private JPanel getContent() {
        JLabel label = new JLabel();
        label.setText("fffffffff");
        label.setBounds(5, 5, 25, 25);

        JLabel label2 = new JLabel();
        label2.setText("HHHHHHHHHH");
        label2.setBounds(25, 25, 25, 25);

        JLabel label3 = new JLabel();
        label3.setText("YYYYYYYY");
        label3.setBounds(50, 50, 25, 25);

        JPanel mainPanel = new JPanel();
        mainPanel.setSize(new Dimension(300,300));
        JPanel panel1 = new JPanel();
        panel1.add(label);
        JPanel panel2 = new JPanel();
        panel2.add(label2);
        JPanel panel3 = new JPanel();
        panel3.add(label3);

        panel1.setBackground(Color.WHITE);
        panel2.setBackground(Color.MAGENTA);
        panel3.setBackground(Color.orange);

        panel1.setBorder(emptyBorder);
        panel2.setBorder(emptyBorder);
        panel3.setBorder(emptyBorder);

        panels = new JPanel[] { panel1, panel2, panel3 };

        mainPanel.add(panel1);
        mainPanel.add(panel2);
        mainPanel.add(panel3);
        return mainPanel;
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new CustomComponent().getContent());
        frame.pack();
        frame.setVisible(true);
    }
}
4

1 に答える 1