18. november 2006 - 21:06
Der er
17 kommentarer og 1 løsning
Java: anderledes Swing
Synes at have læst et sted, at man kan få en form for extension så end swing-komponenter ændrer udseende? Er det korrekt? I så fald, hvor kan man få fat i sådan nogle? Beklager, men har ingen point.
Annonceindlæg tema
18. november 2006 - 21:26
#1
jeg tror at du tænker på look and feel
18. november 2006 - 21:27
#2
for at teste de indbyggede så prøv: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MultiLookAndFeel extends JFrame implements ActionListener { private JButton windows = new JButton("Windows"); private JButton motif = new JButton("Motif"); private JButton metal1 = new JButton("Metal/ocean"); private JButton metal2 = new JButton("Metal/steel"); private JButton gtk = new JButton("GTK"); private JButton java = new JButton("Java"); private JButton system = new JButton("System"); public MultiLookAndFeel() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); getContentPane().setLayout(new GridLayout(7, 1)); windows.addActionListener(this); getContentPane().add(windows); motif.addActionListener(this); getContentPane().add(motif); metal1.addActionListener(this); getContentPane().add(metal1); metal2.addActionListener(this); getContentPane().add(metal2); gtk.addActionListener(this); getContentPane().add(gtk); java.addActionListener(this); getContentPane().add(java); system.addActionListener(this); getContentPane().add(system); pack(); } public void actionPerformed(ActionEvent e) { try { if(e.getSource() == windows) { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } else if(e.getSource() == motif) { UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel"); } else if(e.getSource() == metal1) { javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme(new javax.swing.plaf.metal.OceanTheme()); UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } else if(e.getSource() == metal2) { javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme(new javax.swing.plaf.metal.DefaultMetalTheme()); UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } else if(e.getSource() == gtk) { UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); } else if(e.getSource() == java) { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); } else if(e.getSource() == system) { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } } catch (ClassNotFoundException e1) { e1.printStackTrace(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (UnsupportedLookAndFeelException e1) { e1.printStackTrace(); } SwingUtilities.updateComponentTreeUI(this); pack(); } public static void main(String[] args) { MultiLookAndFeel f = new MultiLookAndFeel(); f.setVisible(true); } }
18. november 2006 - 23:35
#4
Hvordan installerer man eksterne look and feel?
18. november 2006 - 23:43
#5
du anbringer jar fil i classpath og kalder UIManager.setLookAndFeel
19. november 2006 - 21:58
#6
Jeg har downloadet en .jar-fil som skulle være look&feel. Ved du, hvor på SuSE Linux mit java classpath er? Hvad skal jeg køre setLookAndFeel metoden med?
19. november 2006 - 22:24
#7
det nemmeste er vel hvis du starter din app med eksplicit classpath: java -classpath foobar.jar:andet.jar Program hvis du udvikler i Eclipse eller NetBeans kan du nemt tilføje en jar til classpath i dem
19. november 2006 - 22:25
#8
du kalder bare UIManager.setLookAndFeel tidligt i dit program
20. november 2006 - 07:55
#9
Fint, jeg har i Library Manager i netBeans lagt et nyt library ind i classpath - jeg har kaldt det ilf-gpl. Jeg forsøger derefter: UIManager.setLookAndFeel("ilf-gpl"); Men det er måske forkert?
21. november 2006 - 00:52
#10
du skal halde med et navn på en klasse navnet bør frmegå af dokumentationen
21. november 2006 - 09:14
#11
Af dokumentationen fremgår det, at jeg skal køre det sådan: UIManager.setLookAndFeel(new InfoNodeLookAndFeel()); Min kompiler melder bare tilbage, at denne klasse ikke findes. Kan du sige hvad der er galt? Hvordan sikrer jeg mig, at jar-filen er tilføjet korrekt?
21. november 2006 - 12:59
#12
jeg tror at du mangler en import !
21. november 2006 - 15:07
#13
Og hvad er det der skal importeres? :(
21. november 2006 - 15:10
#14
Har bl.a. prøvet: import net.infonode.gui.laf;
22. november 2006 - 10:54
#15
Sådan, så lykkedes det mig at få det til at virke! Hvilke look&feel synes du er pæne? De jeg har fået fat I, er ikke særlig smarte :)
22. november 2006 - 11:07
#16
Jeg har fundet dette, som jeg gerne vil have op at køre:
http://www.jgoodies.com/ Men hvilke filer mm. skal jeg hente?
24. november 2006 - 02:14
#17
24. november 2006 - 08:48
#18
Tak for hjælpen her!
Kurser inden for grundlæggende programmering