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

Java Combobox With Buttons

How to Add Buttons to a Combobox In Java Netbeans

How to Add Buttons to a Combobox In Java Netbeans


In this Java Tutorial we will see How To Create a JCombobox 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.Component;
import java.awt.FlowLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;

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

    private ButtonComboboxElement selectedItem;
    private JComboBox<ButtonComboboxElement> comboBox;
    private final JLabel selectedLabel;
    
    
    public ButtonsComboboxFrame(){
        
        // set up the frame
        setTitle("Buttons-Combobox");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        
        // create the combobox
        comboBox = new JComboBox<>();
        // set the renderer to the combobox
        comboBox.setRenderer(new ButtonComboboxRenderer());
        // add items to the combobox
        comboBox.addItem(new ButtonComboboxElement("Apple", true));
        comboBox.addItem(new ButtonComboboxElement("Tomato", false));
        comboBox.addItem(new ButtonComboboxElement("Orange", false));
        comboBox.addItem(new ButtonComboboxElement("Potato", false));
        comboBox.addItem(new ButtonComboboxElement("Banana", false));
        
        // Set the first item as the default selection
        selectedItem = (ButtonComboboxElement) comboBox.getItemAt(0);
        selectedItem.setSelected(true);
        
        // Add an item listener to handle item state changes
        comboBox.addItemListener((e) -> {
           
            ButtonComboboxElement newElement = (ButtonComboboxElement) comboBox.getSelectedItem();
            
            if(selectedItem != null){ selectedItem.setSelected(false); }
            
            if(newElement != null){ 
                newElement.setSelected(true);
                selectedItem = newElement;
            }
            
            // Update the selected label and repaint the combo box
            updateSelectedLabel();
            comboBox.repaint();
        });
        
        add(comboBox);
        selectedLabel = new JLabel("Selected Item: " + selectedItem.getLabel());
        add(selectedLabel);
        setSize(300,300);
        setLocationRelativeTo(null);
        
    }
    
    // Method to update the selected label text
    public void updateSelectedLabel(){
        selectedLabel.setText("Selected Item: " + (selectedItem != null ? selectedItem.getLabel() : ""));
    }
    
    
    
    // Inner class representing an element in the combobox
    public static class ButtonComboboxElement{
        private final String label;
        private boolean selected;
        
        // Constructor
        public ButtonComboboxElement(String label, boolean selected){
            this.label = label;
            this.selected = selected;
        }
        
        // Getters and Setters
        public String getLabel(){ return label; }
        
        public boolean isSelected(){ return selected; }
        
        public void setSelected(boolean selected){
            this.selected = selected;
        }
        
    }
    
    // Inner class serving as the renderer for the combobox items
    private class ButtonComboboxRenderer extends JButton implements ListCellRenderer<ButtonComboboxElement>{

        private final int BUTTON_MARGIN = 5;
        
        public ButtonComboboxRenderer(){
            setMargin(new Insets(BUTTON_MARGIN, BUTTON_MARGIN, BUTTON_MARGIN, BUTTON_MARGIN));
        }
        
        
        @Override
        public Component getListCellRendererComponent(JList<? extends ButtonComboboxElement> list, ButtonComboboxElement value, int index, boolean isSelected, boolean cellHasFocus) {
            
            setEnabled(list.isEnabled());
            setText(value.getLabel());
            
            return this;
        }
        
    }
    
    
    public static void main(String[] args) {
        ButtonsComboboxFrame frame = new ButtonsComboboxFrame();
        frame.setVisible(true);
    }
}
  
  
    

The Final Result:

Java ComboBox with BUTTONS






Java Combobox With Checkbox Items

How to Add CheckBoxes to a Combobox In Java Netbeans

How to Add CheckBoxes to a Combobox In Java Netbeans



In this Java Tutorial we will see How To Create a Custom JCombobox With Checkable Options Using Checkboxes 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.awt.FlowLayout;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;

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

    private CheckComboBoxElement selectedItem; // The currently selected item
    private JComboBox<CheckComboBoxElement> combobox; // JComboBox for the checkable items
    private final JLabel selectedLabel; // JLabel to display the selected item
    
    public CheckComboBox(){
        
        setTitle("Check Combobox");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        
        combobox = new JComboBox<>();
        // Set custom renderer for the combo box
        combobox.setRenderer(new CheckComboBoxRenderer());
        // Add three checkable items to the combo box
        combobox.addItem(new CheckComboBoxElement("ABCD", true)); // Default selection
        combobox.addItem(new CheckComboBoxElement("EFGH", false));
        combobox.addItem(new CheckComboBoxElement("IJKL", false));
        
        // Set the first item as the default selection
        selectedItem = combobox.getItemAt(0);
        selectedItem.setSelected(true);
        
        // Add an item listener to handle item state changes
        combobox.addItemListener((e) -> {
           
            CheckComboBoxElement newItem = (CheckComboBoxElement) combobox.getSelectedItem();
           // Deselect the previously selected item
            if(selectedItem != null){
                selectedItem.setSelected(false);
            }
            // Select the newly selected item and update the reference
            if(newItem != null){
                newItem.setSelected(true);
                selectedItem = newItem;
            }
            
            updateSelectedLabel();
            combobox.repaint();
            
        });
        
        add(combobox);
        selectedLabel = new JLabel("Selected Item: " + selectedItem.getLabel());
        add(selectedLabel);
        
        setSize(300, 200);
        setLocationRelativeTo(null);
        
        
    }
    
    
    // Method to update the selected item label
    private void updateSelectedLabel(){
        selectedLabel.setText("Selected Item: " + (selectedItem != null ? selectedItem.getLabel() : ""));
    }
    
    
    
    
    // Static nested class representing the checkable items in the combo box
    public static class CheckComboBoxElement{
        private final String label;     // Label for the item
        private boolean selected;       // Selection state of the item
        
        // Constructor for the checkable item
        public CheckComboBoxElement(String label, boolean selected)
        {
            this.label = label;
            this.selected = selected;
        }
        
        // Getters And Setters
        public String getLabel(){ return label;}
        
        public boolean isSelected(){ return selected;}
        
        public void setSelected(boolean selected){ this.selected = selected; } 
        
    }
    
    
    
    // Static nested class representing the custom renderer for the combobox
    private class CheckComboBoxRenderer extends JCheckBox implements ListCellRenderer<CheckComboBoxElement>{

        @Override
        public Component getListCellRendererComponent(JList<? extends CheckComboBoxElement> list, CheckComboBoxElement value, int index, boolean isSelected, boolean cellHasFocus) {
            
            setEnabled(list.isEnabled());
            setSelected(value.isSelected());
            setText(value.getLabel());
            
            // Set background and foreground based on selection state
            if(isSelected){
                setBackground(list.getSelectionBackground());
                setForeground(list.getSelectionForeground());
            }
            else{
                setBackground(list.getBackground());
                setForeground(list.getForeground());
            }
            
            return this; // Return the renderer component
            
        }
        
    }
    
    public static void main(String[] args) {
        
        CheckComboBox frame = new CheckComboBox();
        frame.setVisible(true);
        
    }
    
    
}


The Final Result:

Java Combobox With Checkboxes








Java Combobox With Images

How to Add Images to a Combobox In Java Netbeans

How to Add Images to a Combobox In Java Netbeans


In this Java Tutorial we will see How To Create a JCombobox 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.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultListCellRenderer;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;

/**
 *
 * @author 1BestCsharp
 */
public class ComboboxWithImagesFrame {
    
    // Custom renderer for displaying images in the combo box
    static class ImageComboboxRenderer extends DefaultListCellRenderer{
        
        
        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean hasFocus){
            
            JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);
            
            if(value instanceof ImageItem item){
                label.setText(item.getText());
                label.setIcon(item.getImageIcon());
            }
            
            return  label;  
        }
    }
    
    
    // Method to load images
    private static ImageIcon loadImage(String imageName){
        // Load image from the "images" package
        String imagePath = "images/" + imageName;
        return new ImageIcon(ComboboxWithImagesFrame.class.getResource(imagePath));
        
    }
    
    
    public static void main(String[] args) {
        
        JFrame frame = new JFrame("Combobox With Images");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500,250);
        frame.setLocationRelativeTo(null);
        
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout(FlowLayout.CENTER));
        
        List<ImageItem> items = new ArrayList<>();
        items.add(new ImageItem("analyst", loadImage("analyst.png")));
        items.add(new ImageItem("designer", loadImage("designer.png")));
        items.add(new ImageItem("developer", loadImage("developer.png")));
        items.add(new ImageItem("manager", loadImage("manager.png")));
        
        JComboBox<ImageItem> comboBox = new JComboBox<>(items.toArray(ImageItem[] :: new));
        comboBox.setRenderer(new ImageComboboxRenderer());
        comboBox.setBackground(Color.WHITE);
        comboBox.setPreferredSize(new Dimension(150, 50));
        
        panel.add(comboBox);
        frame.add(panel);
        frame.setVisible(true);
        
    }
    
 
}


    // Define a simple data class to represent items in the combo box
    class ImageItem{
        
        private final String text;
        private final ImageIcon imageIcon;
        
        // Constructor
        public ImageItem(String text, ImageIcon icon){
            this.text = text;
            this.imageIcon = icon;
        }
        
        // Getters
        public String getText(){ return text; }
        
        public ImageIcon getImageIcon(){ return imageIcon; }
            
    }
    


The Final Result:

Java Combobox With Images




Java - Fonts Selector with Combobox

How to Create a Font Chooser ComboBox In Java Netbeans

How to Create a Font Chooser ComboBox In Java Netbeans


In this Java Tutorial we will see How To Create a graphical user interface for selecting and displaying different fonts using a JComboBox In Java Using Netbeans.
We Will Retrieves all the available font family names from the local graphics environment, and Creates a JComboBox (fontsComboBox) with the array of font family names.
When a font family is selected from the combo box, a JLabel in the frame is updated to use the selected font family.

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 java.awt.GraphicsEnvironment;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;

/**
 *
 * @author 1BestCsharp
 */
public class FontsComboBox extends JFrame{
    
    private final JLabel label;
    
    
    public FontsComboBox(){
        
        setTitle("Fonts Combobox");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // Create an array of font family names
        String[] fontFamilies = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
        // Create a JComboBox with a custom renderer
        JComboBox<String> fontsComboBox = new JComboBox<>(fontFamilies);
        fontsComboBox.setRenderer(new FontComboBoxRenderer());
        
        fontsComboBox.addActionListener((e) -> {
           
            String selectedFontFamiliy = (String)fontsComboBox.getSelectedItem();
            updateLabelFont(selectedFontFamiliy);
            
        });
        
        label = new JLabel("Simple Text");
        label.setHorizontalAlignment(JLabel.CENTER);
        
        JPanel panel = new JPanel(new BorderLayout());
        panel.add(fontsComboBox, BorderLayout.NORTH);
        panel.add(label, BorderLayout.CENTER);
        getContentPane().add(panel);
        setSize(400,300);
        setLocationRelativeTo(null);
        
    }
    
    
    private void updateLabelFont(String fontFamily){
        // Update the font of the label based on the selected font family
        Font font = new Font(fontFamily, Font.PLAIN, 18);
        label.setFont(font);
    }
    
    
    private static class FontComboBoxRenderer extends DefaultListCellRenderer{
        
        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean hasFocus){
            // Use the default rendering for the item text
            JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);
            
            // Set the font for the item text based on the font family
            String fontFamily = (String) value;
            Font font = new Font(fontFamily, Font.PLAIN, 24);
            label.setFont(font);
            return label;
        }
        
    }
    

    public static void main(String[] args) {
        
        FontsComboBox frame = new FontsComboBox();
        frame.setVisible(true);
        
    }
    
}


The Final Result:

Java - Fonts Selector with Combobox

How To Select And display Different Fonts Using a JComboBox In Java Using Netbeans

Select And display Different Fonts Using a JComboBox In Java Using Netbeans

How To Select And display Different Fonts Using a JComboBox In Java

Select And display Different Fonts Using a JComboBox In Java