Affichage des articles dont le libellé est jlist. Afficher tous les articles
Affichage des articles dont le libellé est jlist. Afficher tous les articles

Java JList With Buttons

How to Add Buttons to a JList In Java Netbeans

How to Add Buttons to a JList In Java Netbeans


In this Java Tutorial we will see How To Create a JList With Buttons Inside It In Java Using Netbeans.

What We Are Gonna Use In This Project:

- Java Programming Language.
- NetBeans Editor.





Project Source Code:


package new_tutorials;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
import javax.swing.SwingConstants;

/**
 *
 * @author 1BestCsharp
 */
public class ButtonsInJListFrame extends JFrame{
    // Array of ButtonListElement objects to be displayed in the list
    private final ButtonListElement[] elements = {
        new ButtonListElement("Button 1"),
        new ButtonListElement("Button 2"),
        new ButtonListElement("Button 3"),
        new ButtonListElement("Button 4"),
        new ButtonListElement("Button 5")
    };
     // Currently selected element in the list
    private ButtonListElement selectedElement;
    // JList component to display the button list
    private JList<ButtonListElement> buttonList;
    // JLabel to display the selected item label
    private final JLabel selectedLabel;
    
    public ButtonsInJListFrame(){
        setTitle("Buttons In JList");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        
        // Create JList with custom cell renderer
        buttonList = new JList<>(elements);
        buttonList.setCellRenderer(new ButtonListRenderer());
        
        // Set the first item as the default selection
        buttonList.setSelectedIndex(0);
        selectedElement = elements[0];
        
        // Add a list selection listener to handle item state changes
        buttonList.addListSelectionListener((e) -> {
           selectedElement = buttonList.getSelectedValue();
           updateSelectedLabel();
           buttonList.repaint();    
       });
        
       // Add the JList to the center of the BorderLayout 
       add(new JScrollPane(buttonList), BorderLayout.CENTER);
       // Create and add the selected label to the bottom of the BorderLayout
       selectedLabel = new JLabel("Selected Item: " + selectedElement.getLabel());
       selectedLabel.setHorizontalAlignment(SwingConstants.CENTER);
       add(selectedLabel, BorderLayout.SOUTH);
       
       setSize(300,300);
       setLocationRelativeTo(null);
       updateSelectedLabel();
       
    }
    
    
    // Create a method to update the text of the selected label
    private void updateSelectedLabel()
    {
        selectedLabel.setText("Selected Item: " + (selectedElement != null ? selectedElement.getLabel() : ""));
    }
    
    
    
    
    // Create an inner class representing an element in the button list
    public static class ButtonListElement{
        
        private final String label;
        
        // Constructor for ButtonListElement
        public ButtonListElement(String label){
            this.label = label;
        }
        
        // Getter method for the label
        public String getLabel(){ return label;}
    }
    
    // Create an inner class representing the custom renderer for the button list
    private class ButtonListRenderer extends JButton implements ListCellRenderer<ButtonListElement>{

        // Constructor for the ButtonListRenderer
        public ButtonListRenderer(){
            setFont(new Font("Arial", Font.PLAIN, 18));
            setMargin(new Insets(5, 10, 5, 10));    
        }
        
        // Method to render the list cell component
        @Override
        public Component getListCellRendererComponent(JList<? extends ButtonListElement> list, ButtonListElement value, int index, boolean isSelected, boolean cellHasFocus) {
            
            setText(value.getLabel());
            
            // Set background and foreground colors based on selection state
            if(isSelected){
                setBackground(Color.RED);
                setForeground(Color.WHITE);
            }
            else{
                setBackground(list.getBackground());
                setForeground(list.getForeground());
            }
            
            return this;
            
        }
        
    }
    
    
    public static void main(String[] args) {
        
        ButtonsInJListFrame frame = new ButtonsInJListFrame();
        frame.setVisible(true);
        
    }
}
  
    

The Final Result:

Java JList With Buttons







Java JList With Radiobuttons

How to Add Radiobuttons to a JList In Java Netbeans

How to Add Radiobuttons to a JList In Java Netbeans


In this Java Tutorial we will see How To Create a JList With JRadioButtons Inside It In Java Using Netbeans.

What We Are Gonna Use In This Project:

- Java Programming Language.
- NetBeans Editor.





Project Source Code:


package new_tutorials;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
import javax.swing.SwingConstants;

/**
 *
 * @author 1BestCsharp
 */
public class RadioListFrame extends JFrame{
    
    private final RadioListElement[] elements = {
                                                    new RadioListElement("Radio 1"),
                                                    new RadioListElement("Radio 2"),
                                                    new RadioListElement("Radio 3"),
                                                    new RadioListElement("Radio 4"),
                                                    new RadioListElement("Radio 5")
                                                };

    private RadioListElement selectedElement;
    private JList<RadioListElement> radioList;
    private final JLabel selectedLabel;
    
    
    public RadioListFrame(){
        setTitle("Radio List Frame");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        
        // Create JList with custom cell renderer
        radioList = new JList<>(elements);
        radioList.setCellRenderer(new RadioListRenderer());
        
        // Set the first item as the default selection
        radioList.setSelectedIndex(0);
        selectedElement = elements[0];
        
        // Add a list selection listener to handle item state changes
        radioList.addListSelectionListener((e) -> {
           
            selectedElement = radioList.getSelectedValue();
            updateSelectedLabel();
            radioList.repaint();
            
        });
        
        
        add(new JScrollPane(radioList), BorderLayout.CENTER);
        // Create and add a label to display the selected item
        selectedLabel = new JLabel("Selected Item: " + selectedElement.getLabel());
        selectedLabel.setHorizontalAlignment(SwingConstants.CENTER);
        add(selectedLabel, BorderLayout.SOUTH);
        
        
        setSize(300,200);
        setLocationRelativeTo(null);
        
    }
    
    
    // Create a method to update the selected label
    public void updateSelectedLabel(){
        selectedLabel.setText("Selected Item: " + (selectedElement != null ? selectedElement .getLabel() : ""));
    }
    
    
    // Create a class representing elements in the radio list
    public static class RadioListElement{
        
        private final String label;
        
        public RadioListElement(String label){ this.label = label; }
        
        public String getLabel(){
            return label;
        }
        
    }
    
    // Create a custom renderer for the radio list
    private class RadioListRenderer extends JRadioButton implements ListCellRenderer<RadioListElement>{

        public RadioListRenderer(){
                setFont(new Font("Arial", Font.PLAIN, 20));
        }
        
        @Override
        public Component getListCellRendererComponent(JList<? extends RadioListElement> list, RadioListElement value, int index, boolean isSelected, boolean cellHasFocus) {
         
            // Set the appearance of the renderer based on the item state
            setEnabled(list.isEnabled());
            setSelected(value == selectedElement);
            setText(value.getLabel());
            
            if(isSelected){
                // Change background color for selected items
                setBackground(list.getSelectionBackground());
                setForeground(list.getSelectionForeground());
            }
            else{
                // Use default colors for non-selected items
                setBackground(list.getBackground());
                setForeground(list.getForeground());
            }
            
            return this;
        }
        
        
        
    }
    
    public static void main(String[] args) {
        RadioListFrame frame = new RadioListFrame();
        frame.setVisible(true);
    }
    
}




The Final Result:


Java JList With Radiobuttons





Java JList With Images

How to Add Images to a JList In Java Netbeans

Java JList With Images


In this Java Tutorial we will see How To Create a JList With Images Inside It In Java Using Netbeans.

What We Are Gonna Use In This Project:

- Java Programming Language.
- NetBeans Editor.





Project Source Code:


package new_tutorials;

import java.awt.Component;
import java.util.Vector;
import javax.swing.DefaultListCellRenderer;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;

/**
 *
 * @author 1BestCsharp
 */
public class JListWithImagesFrame extends JFrame{

    public JListWithImagesFrame(){
        
        setTitle("JList With Images Frame");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300,200);
        setLocationRelativeTo(null);
        
        initializeUI();
        
    }
    
    // Method to set up the UI components
    private void initializeUI(){
        // Create a Vector to store ListItem objects
        Vector<ListItem> listItems = new Vector<>();
        listItems.add(new ListItem("Manager",loadImage("manager.png")));
        listItems.add(new ListItem("Developer",loadImage("developer.png")));
        listItems.add(new ListItem("Designer",loadImage("designer.png")));
        listItems.add(new ListItem("Analyst",loadImage("analyst.png")));
        
        // Create a JList with ListItem objects and set a custom cell renderer
        JList<ListItem> list = new JList<>(listItems);
        list.setCellRenderer(new ImageListCellRenderer());
        
        // Add the JList to a JScrollPane and add the scroll pane to the content pane
        JScrollPane scrollPane = new JScrollPane(list);
        getContentPane().add(scrollPane);
    }
    
    
    public static void main(String[] args) {
        JListWithImagesFrame frame = new JListWithImagesFrame();
        frame.setVisible(true);
    }
    
    
    // Custom cell renderer for displaying images and text in the JList
    private class ImageListCellRenderer extends DefaultListCellRenderer{
        
        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean hasFocus){
            
            super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);
            
           // Check if the value is an instance of ListItem
           if(value instanceof ListItem item){
               // Set the icon and text for the cell
               setIcon(item.getImageIcon());
               setText(item.getText());
           }
           
           return this;
           
        }
        
    }
    
    
    // Method to load an image from the "images" package
    private static ImageIcon loadImage(String imageName){
        // Load image from the "images" package
        String imagePath = "images/" + imageName;
        return new ImageIcon(JListWithImagesFrame.class.getResource(imagePath));
    }
   
}


// Create a class to represent an item in the JList with a name and an associated image
class ListItem{
    
    private final String text;
    private final ImageIcon image;
    
    // constructor
    public ListItem(String txt, ImageIcon img){
        this.text = txt;
        this.image = img;
    }
    
    // Getters
    public String getText(){ return text; }
    
    public ImageIcon getImageIcon(){ return image; }
    
}
    


The Final Result:

Java JList With Images In Netbeans






Java JList With JTextArea

How to Add TextArea to a JList In Java Netbeans

How to Add TextArea to a JList In Java Netbeans


In this Java Tutorial we will see How To Create a JList With JTextArea Inside It In Java Using Netbeans.

What We Are Gonna Use In This Project:

- Java Programming Language.
- NetBeans Editor.





Project Source Code:



package new_tutorials;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.util.ArrayList;
import java.util.List;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ListCellRenderer;

/**
 *
 * @author 1BestCsharp
 */
public class TextAreaInJListFrame extends JFrame{

    private JList<TextAreaListElement> textAreaList;
    
    public TextAreaInJListFrame(){
        setTitle("TextArea In JList");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        
        List<TextAreaListElement> elements = new ArrayList<>();
        elements.add(new TextAreaListElement("Item 1", "Description for Item Line Description for Item 1 Line 2 Description for Item 1 Line 3"));
        elements.add(new TextAreaListElement("Item 2", "Description Description DescriptionDescription DescriptionDescription Description Description Description Description for Item 2"));
        elements.add(new TextAreaListElement("Item 3", "Description for Item 3"));
        elements.add(new TextAreaListElement("Item 11", "Description for Item Line Description for Item 1 Line 2 Description for Item 1 Line 3"));
        elements.add(new TextAreaListElement("Item 22", "Description Description DescriptionDescription DescriptionDescription Description Description Description Description for Item 2"));
        elements.add(new TextAreaListElement("Item 33", "Description for Item 3"));
        elements.add(new TextAreaListElement("Item 41", "Description for Item Line Description for Item 1 Line 2 Description for Item 1 Line 3"));
        elements.add(new TextAreaListElement("Item 52", "Description Description DescriptionDescription DescriptionDescription Description Description Description Description for Item 2"));
        elements.add(new TextAreaListElement("Item 63", "Description for Item 3"));
        elements.add(new TextAreaListElement("Item 71", "Description for Item Line Description for Item 1 Line 2 Description for Item 1 Line 3"));
        elements.add(new TextAreaListElement("Item 82", "Description Description DescriptionDescription DescriptionDescription Description Description Description Description for Item 2"));
        elements.add(new TextAreaListElement("Item 93", "Description for Item 3"));
        elements.add(new TextAreaListElement("Item 211", "Description for Item Line Description for Item 1 Line 2 Description for Item 1 Line 3"));
        elements.add(new TextAreaListElement("Item 992", "Description Description DescriptionDescription DescriptionDescription Description Description Description Description for Item 2"));
        elements.add(new TextAreaListElement("Item 543", "Description for Item 3"));

        textAreaList = new JList<>(elements.toArray(TextAreaListElement[] :: new));
        textAreaList.setCellRenderer(new TextAreListRenderer());
        
        JScrollPane scrollPane = new JScrollPane(textAreaList);
        add(scrollPane, BorderLayout.CENTER);
        setSize(400,300);
        setLocationRelativeTo(null);
        
    }
    
    
    public static class TextAreaListElement{
        private final String label;
        private final String description;
        
        public TextAreaListElement(String label, String description){
            this.label = label;
            this.description = description;
        }
        
        public String getLabel(){
            return label;
        }
        
        public String getDescription(){
            return description;
        }
        
    }
    
    
    // create a renderer to display the textArea
    private class TextAreListRenderer extends JTextArea implements ListCellRenderer<TextAreaListElement>{

        public TextAreListRenderer(){
            setLineWrap(true);
            setWrapStyleWord(true);
            setMargin(new Insets(5, 10, 5, 10));
            setFont(new Font("Arial", Font.PLAIN, 16));
            setPreferredSize(new Dimension(300,80));
        }
        
        @Override
        public Component getListCellRendererComponent(JList<? extends TextAreaListElement> list, TextAreaListElement value, int index, boolean isSelected, boolean cellHasFocus) {
         
            setEnabled(list.isEnabled());
            setText(value.getLabel()+ "\n" + value.getDescription());
            
            if(isSelected){
                setBackground(Color.BLACK);
                setForeground(Color.YELLOW);
            }
            else{
                setBackground(list.getBackground());
                setForeground(list.getForeground());
            }
            
            return this;
        }
        
    }
    
    
    public static void main(String[] args) {
        
        TextAreaInJListFrame frame = new TextAreaInJListFrame();
        frame.setVisible(true);
        
    }
}


The Final Result:


Java JList With JTextArea

JList With JTextArea In Java