ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
640
640
EMPFEHLEN
-
13.05.11 11:53 #1
- Registriert seit
- May 2011
- Beiträge
- 12
ich habe ein paar jbuttons mit einem icon versehen.
der button selber ist unsichtbar per:
aber wenn ich auf den button drücke, wird, solange ich gedrückt halte, alles was hinter dem icon liegt sichtbar.Code :1 2 3 4 5 6
zellenBreite = table.getColumn( "Info" ).getWidth(); image = new Bilder( new Auftrag() ).loadImage( FCP_System.ICON_AUSRUFEZEICHEN_RED ); double bildBreite = (double)image.getWidth() * ( (double)zellenHoehe / (double)image.getHeight() ); button = new JButton( new ImageIcon( image.getScaledInstance( (int) (bildBreite * 0.8), (int) (zellenHoehe * 0.8), image.SCALE_SMOOTH ) ) ); button.setContentAreaFilled( false ); button.setBorderPainted( false );
also icon ist weg, button ist wieder sichtbar mit dem jeweiligen text.
ich habe also versucht mit:
das zu unterbinden.Code :1
button.setPressedIcon( neuesIcon );
klappt leider überhaupt nicht. setselectedicon hat auch nichts gebracht.
ich verwende zur zeit kein l&F.
woran kann das liegen?Geändert von ForenDaddy (13.05.11 um 17:01 Uhr)
-
13.05.11 14:36 #2
- Registriert seit
- Jun 2009
- Beiträge
- 870
Warum willst du bitte einen Button verstecken? Graphische Elemente sind dazu da, um gesehen zu werden, sonst solltest du die Funktion lieber in die Kommandozeile oder eine API verstecken.
Du verwendest (mit Swing) IMMER ein L&F, das kannst du gar nicht verhindern. In deinem Fall wird es wohl das Standard-L&F sein.ich verwende zur zeit kein l&F.Geändert von genodeftest (14.05.11 um 13:37 Uhr)
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
13.05.11 15:35 #3
- Registriert seit
- May 2011
- Beiträge
- 12
ich habe einen button, das icon. das imageicon tritt also an die stelle des original java buttons.
doch beim klicken, taucht der java button plötzlich wieder auf und das icon verschwindet.
damit verändert er seine gestalt beim klicken.
das sieht gelinde gesagt, merkwürdig aus.
-
13.05.11 15:39 #4
- Registriert seit
- Jun 2009
- Beiträge
- 870
OK, verstanden.
Hilft dir 14.5.5 ff von http://www.java2s.com/Tutorial/Java/...0__JButton.htm weiter?Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
13.05.11 16:03 #5
- Registriert seit
- May 2011
- Beiträge
- 12
leider nein, die seite kenne ich schon.
überall wo ich gesucht habe, wird das setPressedIcon() propagiert.
es funktioniert aber nicht.
gibt es noch andere möglichkeiten einem button ein icon zuzuordnen während er gedrückt wird?
-
13.05.11 16:24 #6
- Registriert seit
- Jun 2009
- Beiträge
- 870
Bist du dir sicher, dass das Icon problemlos und fehlerfrei geladen wird?
Funktioniert es, wenn du für alle Zustände das gleiche Button-Objekt benutzt?Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
13.05.11 16:59 #7
- Registriert seit
- May 2011
- Beiträge
- 12
es ist immer das selbe button objekt, mit namen button und ich verwende auch das selbe icon.
ist am praktischsten, weil die optik dann natürlich 100% identisch ist.
nur egal ob ich setPressedIcon festlege oder nicht, es ändert einfach gar nichts dran.
ich habe oben mal den ganzen code eingestellt, mit dem ich das icon setze.
das setPressedIcon muss man sich einfach nur eine zeile drunter dazu denken, auch mit einem image.getscaledinstacen(....).Geändert von ForenDaddy (13.05.11 um 17:02 Uhr)
-
14.05.11 13:06 #8
- Registriert seit
- Jun 2009
- Beiträge
- 870
klingt nach einem Bug in der Java SE API.
Ich probier es mal bei mir.Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
14.05.11 13:43 #9
- Registriert seit
- Jun 2009
- Beiträge
- 870
Ich kann dein Problem nicht beobachten.
Kannst du vllt. noch etwas mehr Code posten? Am besten gleich in JAVA-Tags (siehe meine Signatur)Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
16.05.11 09:18 #10
- Registriert seit
- May 2011
- Beiträge
- 12
in Zeile 36 habe ich versucht das setPressedIcon() zu setzen.
kompletter ButtonRenderer:
siehe auch JTable soll mit Buttons befüllt werden, aber nicht in jede Zelle einer Spalte
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
class ButtonRenderer implements TableCellRenderer { JButton button = new JButton(); BufferedImage image; int zellenBreite = 0; int zellenHoehe = 0; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { zellenHoehe = table.getRowHeight( column ); if ( column == 1 ) { zellenBreite = table.getColumn( "Statusmeldung" ).getWidth(); image = new Bilder( new Auftrag() ).loadImage( FCP_System.ICON_INFO ); double bildBreite = (double)image.getWidth() * ( (double)zellenHoehe / (double)image.getHeight() ); button = new JButton( new ImageIcon( image.getScaledInstance( (int) (bildBreite * 0.8), (int) (zellenHoehe * 0.8), image.SCALE_SMOOTH ) ) ); button.setContentAreaFilled( false ); button.setBorderPainted( false ); } else if( column == 2 ) { zellenBreite = table.getColumn( "Abrechnung" ).getWidth(); image = new Bilder( new Auftrag() ).loadImage( FCP_System.ICON_EURO ); double bildBreite = (double)image.getWidth() * ( (double)zellenHoehe / (double)image.getHeight() ); button = new JButton( new ImageIcon( image.getScaledInstance( (int) (bildBreite * 0.8), (int) (zellenHoehe * 0.8), image.SCALE_SMOOTH ) ) ); button.setContentAreaFilled( false ); button.setBorderPainted( false ); table.getModel().getValueAt( row, column ) ); } else if ( column == 7 ) { zellenBreite = table.getColumn( "Info" ).getWidth(); image = new Bilder( new Auftrag() ).loadImage( FCP_System.ICON_AUSRUFEZEICHEN_RED ); double bildBreite = (double)image.getWidth() * ( (double)zellenHoehe / (double)image.getHeight() ); button = new JButton( new ImageIcon( image.getScaledInstance( (int) (bildBreite * 0.8), (int) (zellenHoehe * 0.8), image.SCALE_SMOOTH ) ) ); button.setPressedIcon( new ImageIcon( image.getScaledInstance( (int) (bildBreite * 0.8), (int) (zellenHoehe * 0.8), image.SCALE_SMOOTH ) ) ); button.setContentAreaFilled( false ); button.setBorderPainted( false ); } else { button.setText(value.toString()); } return button; } }
-
17.05.11 22:06 #11
- Registriert seit
- Jun 2009
- Beiträge
- 870
Im 2. if()-Block rufst du (Zeile 29)
auf, weist den Wert aber nirgends zu.Code java:1
table.getModel().getValueAt( row, column ) );
Probier doch mal, bei jedem Aufruf der Methode getTableCellRendererComponent() einen neuen JButton zu erzeugen, d.h. 'button' nicht als klassenweite Variable, sondern nur innerhalb der Methode zu definieren.Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
Ähnliche Themen
-
einzelne form funktioniert funktioniert nicht
Von JBJHJM im Forum HTML & XHTMLAntworten: 0Letzter Beitrag: 05.04.11, 16:54 -
JButton: ActionEvent beim Tastenklick NICHT auslösen.
Von barsiq im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 23.09.10, 13:00 -
JButton will seine Hoehe nicht aendern
Von timgkeller im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 10Letzter Beitrag: 29.08.08, 09:18 -
Verwirrung: Build-Release funktioniert nicht mehr, Debug funktioniert
Von Jobless im Forum JavaAntworten: 1Letzter Beitrag: 15.01.07, 15:58 -
Funktion IE/Firefox - funktioniert/funktioniert nicht
Von SixDark im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 02.03.06, 00:26





Zitieren
Login





