Preguntas de CardLayout Manager / Confusión

Actualmente estoy trabajando en un programa que he hecho preguntas relacionadas anteriormente.

He progresado bastante desde entonces, y ahora estoy listo para comenzar en la parte del panel de información del programa cliente. He leído la documentación y otras preguntas, pero todavía estoy un poco confundido. ¿Cómo configuro el panel para que funcione? ¿Cómo lo relaciono con la JList (si eso es posible usar una JList en lugar de un cuadro combinado), y luego cómo establezco qué selección hace referencia a qué tarjeta?

¡Muchas gracias por cualquier ayuda!

Fuente:

import javax.swing.*;
import java.util.*;
import java.awt.*;

public class ClientApp extends JFrame
{
    public static void main(String[] args)
    {
        new ClientApp();
    }


    public ClientApp()
    {
        this.setSize(320,380);
        this.setTitle("Honeydukes Candy Order");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(new BorderLayout());

        JPanel infoPanel = new JPanel(new CardLayout());
        JPanel invntryPanel = new JPanel();


        String[] candy = {"Acid Pops", "Bat's Blood Soup",
                          "Bertie Bott's Every Flavour Beans",
                          "Blood-flavoured Lollipops",
                          "Cauldron Cakes", "Charm Choc",
                          "Chocoballs", "Chocolate Cauldrons",
                          "Chocolate Frogs", "Chocolate Skeletons",
                          "Chocolate Wands", "Choco-Loco", "Cockroach Clusters",
                          "Nougat", "Crystallised Pineapple",
                          "Drooble's Best Blowing Gum", "Exploding Bonbons",
                          "Toffees", "Fizzing Whizzbees",
                          "Fudge Flies", "Ice Mice",
                          "Jelly Slugs", "Liquourice Wands",
                          "Pepper Imps", "Peppermint Toads",
                          "Pink Coconut Ice", "Pixie Puffs",
                          "Pumpkin Fizz", "Salt Water Taffy",
                          "Shock-o-Choc", "Skeletal Sweets",
                          "Splindle's Lick'O'Rish Spiders",
                          "Sugar Quills", "Sugared Butterfly Wings",
                          "Toothflossing Stringmints", "Tooth-Splintering Strongmints",
                          "Treacle Fudge", "Chocolates", "Wizochoc"};
        JList candyList = new JList(candy);
        candyList.setVisibleRowCount(18);
        candyList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        JScrollPane scroll = new JScrollPane(candyList, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                                             JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        invntryPanel.add(scroll);

        JPanel startCard = new JPanel();
        JPanel acidPopsCard = new JPanel();
        JPanel batsBloodSoupCard = new JPanel();
        JPanel bertieBottsCard = new JPanel();
        JPanel bloodPopsCard = new JPanel();
        JPanel cauldronCakesCard = new JPanel();
        JPanel charmChocCard = new JPanel();
        JPanel chocoballsCard = new JPanel();
        JPanel chocCauldronsCard = new JPanel();
        JPanel chocFrogsCard = new JPanel();
        JPanel chocSkeleCard = new JPanel();
        JPanel chocWands = new JPanel();
        JPanel chocolocoCard = new JPanel();
        JPanel roachClustersCard = new JPanel();
        JPanel nougatCard = new JPanel();
        JPanel crystalPineappleCard = new JPanel();
        JPanel droobleGumCard = new JPanel();
        JPanel explodeBonbonsCard = new JPanel();
        JPanel toffeesCard = new JPanel();
        JPanel fizzWhizCard = new JPanel();
        JPanel fudgeFliesCard = new JPanel();
        JPanel iceMiceCard = new JPanel();
        JPanel jellySlugsCard = new JPanel();
        JPanel liquorWandsCard = new JPanel();
        JPanel pepImpsCard = new JPanel();
        JPanel pinkCocoIceCard = new JPanel();
        JPanel pixiePuffsCard = new JPanel();
        JPanel pumpkFizzCard = new JPanel();
        JPanel saltTaffeyCard = new JPanel();
        JPanel shockChocCard = new JPanel();
        JPanel skeleSweetsCard = new JPanel();
        JPanel spindleSpidersCard = new JPanel();
        JPanel sugarQuillsCard = new JPanel();
        JPanel sugarWingsCard = new JPanel();
        JPanel flossMintsCard = new JPanel();
        JPanel splintMintsCard = new JPanel();
        JPanel treacleFudgeCard = new JPanel();
        JPanel chocolatesCard = new JPanel();
        JPanel wizochocCard = new JPanel();

        infoPanel.add(startCard);
        infoPanel.add(acidPopsCard);
        infoPanel.add(batsBloodSoupCard);
        infoPanel.add(bertieBottsCard);
        infoPanel.add(bloodPopsCard);
        infoPanel.add(cauldronCakesCard);
        infoPanel.add(charmChocCard);
        infoPanel.add(chocoballsCard);
        infoPanel.add(chocCauldronsCard);
        infoPanel.add(chocFrogsCard);
        infoPanel.add(chocSkeleCard);
        infoPanel.add(chocWands);
        infoPanel.add(chocolocoCard);
        infoPanel.add(roachClustersCard);
        infoPanel.add(nougatCard);
        infoPanel.add(crystalPineappleCard);
        infoPanel.add(droobleGumCard);
        infoPanel.add(explodeBonbonsCard);
        infoPanel.add(toffeesCard);
        infoPanel.add(fizzWhizCard);
        infoPanel.add(fudgeFliesCard);
        infoPanel.add(iceMiceCard);
        infoPanel.add(jellySlugsCard);
        infoPanel.add(liquorWandsCard);
        infoPanel.add(pepImpsCard);
        infoPanel.add(pinkCocoIceCard);
        infoPanel.add(pixiePuffsCard);
        infoPanel.add(pumpkFizzCard);
        infoPanel.add(saltTaffeyCard);
        infoPanel.add(shockChocCard);
        infoPanel.add(skeleSweetsCard);
        infoPanel.add(spindleSpidersCard);
        infoPanel.add(sugarQuillsCard);
        infoPanel.add(sugarWingsCard);
        infoPanel.add(flossMintsCard);
        infoPanel.add(splintMintsCard);
        infoPanel.add(treacleFudgeCard);
        infoPanel.add(chocolatesCard);
        infoPanel.add(wizochocCard);

        this.add(invntryPanel, BorderLayout.WEST);
        this.add(infoPanel, BorderLayout.EAST);
        this.setVisible(true);
    }
}
Respuesta 1

Creo esta imagen con g2d: Aquí está el código: BufferedImage bufferedImage = new BufferedImage (408, 408, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = bufferedImage.createGraphics (); Lista <...

Soy novato en IntelliJ, solía usar NetBeans. Mi situación es la siguiente: creo la clase y la prueba correspondiente. Creo algún método en la clase. ¿Hay alguna característica en IntelliJ ...

Estoy trabajando con JUNG Graph. El problema en el que estoy trabajando se puede definir de la siguiente manera: dado un gráfico JUNG G = {V, E} y un borde E1, encuentre los nodos / vértices que E1 conecta y elimine el vértice si ...

¿Cómo puedo pasar una función en el método de ejecución cuando llamo usando executeor.scheduleWithFixedDelay Eg. IntStream.range (0, 4) .forEach (i -> executeor.scheduleWithFixedDelay (this :: runOnce, 0, 5000, ...