Avatar billede ostehamster Nybegynder
07. marts 2008 - 09:14 Der er 3 kommentarer og
1 løsning

Minimal JFileChooser

Hej

Jeg har JFrame med et JPanel som indeholder et JFileChooser object, som har lige lovligt mange funktioner.

Mit problem er at det ligner http://surl.dk/3tm/ , hvor det er lykkedes mig at fjerne Open og Cancel knappen under windows. Dog har jeg stadig de fem store ikoner ude i siden, som jeg ikke kan få fjernet, med mindre jeg ændre Look and Feel.

Jeg vil helst køre med Windows eller WindowsClassic som Look and Feel, er det så muligt at fjerne ikonerne?

På forhånd tak
Christoffer Kjølbæk
Avatar billede _carsten Nybegynder
07. marts 2008 - 09:53 #1
JFileChooser chooser = new JFileChooser();
chooser.remove(0);  // Denne linie gør det
Avatar billede ostehamster Nybegynder
07. marts 2008 - 10:02 #2
Kanon :)

Er det noget man bare ved, eller har jeg været rigtig dårlig til at læse Java APIen for JFileChooser? :)
Avatar billede _carsten Nybegynder
07. marts 2008 - 14:42 #3
:) Nej, du har ikke nødvendigvis været dårlig til at læse API'en, men når en klasse extender java.awt.Container, så er der nogle java komponenter man kan lave lidt ballade med, det er kun et spørgsmål om at finde dem - prøv vedlagte eksempel.

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class NewJFrame extends javax.swing.JFrame {
    private javax.swing.JButton jButton1;
    int b = 0;

    public NewJFrame() {
        initComponents();
    }

    private void initComponents() {

        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new java.awt.FlowLayout());

        jButton1.setText("Åben FileChooser");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                asd(evt);
            }
        });
        getContentPane().add(jButton1);

        pack();
    }

    private void asd(java.awt.event.ActionEvent evt) {                   
        JFileChooser chooser = new JFileChooser();
        int x = chooser.getComponentCount();

        for (int i = 0; i < x; i++) {
            split(chooser.getComponent(i));
        }

        chooser.showDialog(this, "Åben");
    }                   
   

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                    try{
                        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                    }
                    catch (UnsupportedLookAndFeelException un){
                        System.out.println("getSystemLookAndFeelClassName, not supported !");
                    }
                    catch (ClassNotFoundException cn){
                    }
                    catch (InstantiationException in){
                    }
                    catch (IllegalAccessException il){
                    }
                new NewJFrame().setVisible(true);
            }
        });
    }
   
    private void split(Component c){

        if(c instanceof JPanel){
            ((JPanel)c).setOpaque(true);
            b += 30;
            ((JPanel)c).setBorder(javax.swing.BorderFactory.createTitledBorder("Dyt -båt"));
           
            for (int i = 0; i <  ((JPanel)c).getComponentCount() ; i++) {
                split( ((JPanel)c).getComponent(i) );
                ((JPanel)c).setBackground(new Color(250,250, b ));
            }
        }
        else if(c instanceof JButton)
            ((JButton)c).setForeground(Color.blue);
        else if(c instanceof JToolBar)
            ((JToolBar)c).setBackground(Color.GREEN);
        else if(c instanceof JLabel){
            ((JLabel)c).setOpaque(true);
            ((JLabel)c).setFont(new Font("Arial", Font.BOLD, 14));
            ((JLabel)c).setBackground(Color.ORANGE);
        }
    }
}
Avatar billede ostehamster Nybegynder
07. marts 2008 - 15:01 #4
Hehehe, snedigt :) Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester