Java style -> windows style?
lima-city → Forum → Programmiersprachen → Java
abschicken
anzeige
auto
blocken
code
dank
einloggen
fehler
fehlermeldung
http
import
list
login
methode
native
null
run
swing
system
url
-
Hallo
Ich habe eine Frage:
Ich habe einen "normalen" JButton erstellt. Der sieht ja so aus:
http://www.java2s.com/Tutorial/JavaImages/JButtonWithTooltip.PNG
Nun habe ich mir Netbeans 7 herruntergeladen. Hier sehen die JButtons aber so aus (wie der rot eingerahmte)
http://blogs.tech-recipes.com/shamanstears/files/2008/07/vista_restore_gadgets.png
Wie bekomme ich das nun als Code zum selbst schreiben hin...gibt es da eine methode oder ist das von Netbeans gestellt?
Thx für Antworten
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dazu musst du das Look and Fell entsprechend einstellen.
Hier wirds erklärt:
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
Kurz und knapp musst du das hier verwenden und die Exceptions abfangen:
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
-
Danke für die schnelle Antwort. Leider funktioniert sie leider nicht. ich bekomme einen Haufen exeptions.
Class: Anzeige new Class: fenstereinstllungen (Einloggen) 283 159 Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.plaf.ColorUIResource cannot be cast to java.util.List at javax.swing.plaf.metal.MetalUtils.drawGradient(Unknown Source) at javax.swing.plaf.metal.MetalInternalFrameTitlePane.paintComponent(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JLayeredPane.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source) at javax.swing.RepaintManager$PaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source) at sun.awt.SunGraphicsCallback.runComponents(Unknown Source) at java.awt.Container.paint(Unknown Source) at java.awt.Window.paint(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Wen ich Z.B. UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); benutze dan Funktioniert es, aber es ändert sich nichts
falls es hilft... ich habe meinen quelltext mal umgestellt von extends JFrame auf JFrame j = new JFrame; (etwas unübersichtlich geworden aber sollte eig alles klas sein...
[/code][code]package mainPack; import java.awt.Color; import java.awt.Font; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.plaf.metal.DefaultMetalTheme; import javax.swing.plaf.metal.MetalLookAndFeel; import javax.swing.plaf.metal.OceanTheme; import vimeStandartPack.fenstereinstellungen; import actionListener.DisposeListener; import actionListener.IntFrameListener; public class Anzeige{ /** * */ private static final long serialVersionUID = 1L; public enum rechenzeichen{plus,minus}; JFrame j = new JFrame(); javax.swing.JButton dispose = new javax.swing.JButton(); DisposeListener disLis = new DisposeListener(); public JInternalFrame logo = new JInternalFrame(); JButton logoBtn = new JButton(); public JInternalFrame login = new JInternalFrame("Login"); IntFrameListener fraLis = new IntFrameListener(this); Icon logoStandart = new ImageIcon("bin\\pics\\logoStandart.png"); Icon logoRollover = new ImageIcon("bin\\pics\\logoRollover.png"); Icon logoPressed = new ImageIcon("bin\\pics\\logoPressed.png"); Icon loginPNG = new ImageIcon("bin\\pics\\login.png"); JButton abschicken = new javax.swing.JButton("Abschicken"); JTextField user = new JTextField(); JPasswordField pi = new JPasswordField(); JLabel loginLabel = new JLabel(new ImageIcon("bin\\pics\\login.png")); @SuppressWarnings("deprecation") public Anzeige() { String lookAndFeel = null; lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName(); try { UIManager.setLookAndFeel(lookAndFeel); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { // TODO Auto-generated catch block e.printStackTrace(); } JFrame.setDefaultLookAndFeelDecorated(true); JPanel jp = new JPanel(true); jp.setSize(9999, 9999); jp.setLocation(0, 0); jp.setBackground(Color.BLACK); j.setBackground(Color.RED); j.setUndecorated(true); j.setAlwaysOnTop(true); int screensizehight = java.awt.Toolkit.getDefaultToolkit().getScreenSize ().height; int screensizewidth = java.awt.Toolkit.getDefaultToolkit().getScreenSize ().width; System.out.println("Class: Anzeige"); new fenstereinstellungen(j, "Einloggen", screensizehight, screensizewidth, false); j.setVisible(true); j.setDefaultCloseOperation(3); j.setLayout(null); dispose.setBounds(screensizewidth-50, 0, 50, 50); dispose.setVisible(true); dispose.setForeground(Color.RED); dispose.setContentAreaFilled(false); dispose.setBorderPainted(false); dispose.addActionListener(disLis); addingLogo(); settingUpLogin(); j.add(jp); j.dispose(); j.setVisible(true); } private void settingUpLogin() { user.setSize(482, 91 ); user.setLocation(258, 107); user.setBackground(new Color(16, 131, 255)); user.setForeground(Color.WHITE); Font f = new Font("Calibri", 0, 85); user.setFont(f); pi.setSize(482, 91); pi.setLocation(258, 221); pi.setBackground(new Color(16, 131, 255)); pi.setForeground(Color.WHITE); Font f2 = new Font("Calibri", 0, 75); pi.setFont(f2); abschicken.setSize(200, 50); abschicken.setLocation(545, 335); abschicken.setBorderPainted(false); login.add(abschicken); login.add(pi); login.add(user); int width=loginPNG.getIconWidth(); int height=loginPNG.getIconHeight(); login.setSize(width, height); int screensizehight = java.awt.Toolkit.getDefaultToolkit().getScreenSize ().height; int screensizewidth = java.awt.Toolkit.getDefaultToolkit().getScreenSize ().width; int x = (screensizewidth/2)-(width/2); int y = (screensizehight/2)-(height/2); System.out.println(x+" "+y+""); login.setLocation(x, y); login.add(loginLabel); j.add(login); } private void addingLogo() { int width=300; int height=300; logo.setSize(width, height); int screensizehight = java.awt.Toolkit.getDefaultToolkit().getScreenSize ().height; int screensizewidth = java.awt.Toolkit.getDefaultToolkit().getScreenSize ().width; int x = (screensizewidth/2)-(width/2); int y = (screensizehight/2)-(height/2); logo.setLocation(x, y); logoBtn.setBorderPainted(false); logoBtn.setContentAreaFilled(false); logoBtn.setIcon(logoStandart); logoBtn.setRolloverIcon(logoRollover); logoBtn.setPressedIcon(logoPressed); logoBtn.addMouseListener(fraLis); logo.add(logoBtn); j.add(logo); logo.setVisible(true); } }
Beitrag zuletzt geändert: 14.7.2011 22:29:28 von vime -
He,
wenn ich die Fehlermeldung richtig deute, dann kann es sein, dass der Fehler schon in der Klasse "fenstereinstellungen" eintritt.
und wenn ich mich allzu sehr täusche, dann dort in Zeile 283
Diese Exception wird dann an deine Anzeige-Klasse weitergeworfen.
Schau dir mal die fenstereinstellungen-Klasse an besonders den Teil, wo du "Einloggen" übergibst.
Viel Erfolg -
Ok ich habs gelöst.
ich hab es einfach in die Main methode geschrieben und nu geht alles. Danke
Beitrag zuletzt geändert: 15.7.2011 11:25:43 von vime -
Könnte es sein, dass du das aufgerufen hast nachdem du die Fenster erstellt hast oder so?
Ich denke hier hängt der Fehler, weil in der Fehlermeldung steht, dass er nicht neu zeichnen konnte soweit ich das sehe.
Wäre vllt auch für andere die hierauf stoßen interessant. -
Naja...aufjedenfall einfach das Ding ganz an den anfang setzen bevor man was macht..dan ist alles gut...
Und danke nochmal :D -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage