double zu int

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich versuche die ganze zeit einen double in einen int zu verwandeln.

hab schon:
(int) (doublewert)
und
intValue(doublewert)
probiert.

Alelrdings ohne erfolg.
Beim ersten Fall bringt er keine Fehlermeldungen bringt aber immer nur 0 zurück
Beim zweiten findet er intValue nicht obwohl ich eigentlich java.lang.Double.*; importiert hätte, vorrausgesetzt das ist wirklich der richtige import.
 
G

Guest

Gast
Naja ich bin draufgekommen dass es mit (int) im Normalfall schon gehen würde wenn ich allerdings das hier bei Systemout println schreib gibt er immer 0 zurück - keine ahnung wieso.

Code:
(int)((volltextDesktoppane.getWidth())*0.75)
 
A

alien

Gast
Anonymous hat gesagt.:
Naja ich bin draufgekommen dass es mit (int) im Normalfall schon gehen würde wenn ich allerdings das hier bei Systemout println schreib gibt er immer 0 zurück - keine ahnung wieso.

Int schneidet praktisch alles hinter dem Komma ab (also das explizite casten -> int) Du könntest aber den double Wert in nen float casten und dann die runden Funktion round(float) benutzen.

Hoffe es hilft.
 

dotlens

Top Contributor
versuchs mal so:
Code:
int i = new Double((volltextDesktoppane.getWidth())*0.75).intValue();
ansonsten kann ich nur raten dass getWidth 0 zurückgibt.
 
G

Guest

Gast
ja getWidth gibt 0 zurück aber Wieso.
Ich setze zwar nirgends genau die Größe des Panes fest. Aber ich hab es in einem Borderlayout im Zentrum platziert. Das heißt es streckt sich auf das ganze Panel.
Dann müsste er wohl irgendeine Breite Höhe zurückgeben können?
 
G

Guest

Gast
Anonymous hat gesagt.:
ja getWidth gibt 0 zurück aber Wieso.
Ich setze zwar nirgends genau die Größe des Panes fest. Aber ich hab es in einem Borderlayout im Zentrum platziert. Das heißt es streckt sich auf das ganze Panel.
Dann müsste er wohl irgendeine Breite Höhe zurückgeben können?

Also nochmal zur verdeutlichung:

Das derzeitige Problem ist, dass ich wohl mti getWidth und getHeight jeweils 0 zurückbekomme.
Wie kann ich nun höhe und breite eines jDesktoppanes bekommen, auch wenn ich die Größe mit setSize oder sonst was festsetz sondern es einfach mit einem Borderlayout das ganze Panel ausfüllen lasse.
 

dotlens

Top Contributor
auch wenn du die grösse nicht mit setSize() setzt wird sie richtig zurückgegeben.
hast du denn schon mal getWidth() ausgeben lassen?
Code:
System.out.println(volltextDesktoppane.getWidth())
 
G

Guest

Gast
dotlens hat gesagt.:
auch wenn du die grösse nicht mit setSize() setzt wird sie richtig zurückgegeben.
hast du denn schon mal getWidth() ausgeben lassen?
Code:
System.out.println(volltextDesktoppane.getWidth())

Jaja hab ich schon alels probiert.
-> wenn ich davor setSize setze passt alles optimal und er gibt mir die Size und Width aus
-> wenn ich das allerdings nicht tue gibt er immer 0 zurück

Das problem ist halt wenn ich setSize davor setze hab ich immer nur bei z.b.: setSize(600,600);
eine with von 600*0.75 für den einen und für den anderen 600*0.25.

Ich will aber dass falls man das fenster größer macht immer noch ein Komponent 75% und der andere 25% hat. Mit setSize wäre das aber nicht der Fall.
 

dotlens

Top Contributor
ist denn zu dem Zeitpunkt, in dem du getWidth() abfragt schon das Fenster gezeichnet worden?
oder schon pack() aufgerufen worden?
Annsonsten ist klar, dass das Panel noch keine Gröse hat...
 
G

Guest

Gast
pack wurde zu dem zeitpunkt noch nicht aufgerufen,
aber das fenster wurde einem anderen fenster hinzugefügt;
 

dotlens

Top Contributor
das bringt nichts.
ruf mal pack() auf oder setze deine Programmcode an einen andern Teil des Programms (schluss)
 
G

Guest

Gast
hier nochmal der relevante code. Kann nicht alles posten da diese klasse über 1100 zeilen hat

Code:
        //internalframes
        	//volltextbearbeitenInternalFrame
        	volltextbearbeitenInternalframe.setTitle("Volltext bearbeiten");
	       	volltextbearbeitenInternalframe.getContentPane().setLayout(new java.awt.BorderLayout());
        	volltextbearbeitenInternalframe.getContentPane().add(volltextbearbeitenPanel,java.awt.BorderLayout.CENTER);
        	volltextbearbeitenInternalframe.setMaximizable(true);
      	  	volltextbearbeitenInternalframe.setVisible(true);
      	  	//volltextbearbeitenInternalframe.setBounds(0,0,300,300);
        	volltextbearbeitenInternalframe.setBounds(0,0,(int)(volltextDesktoppane.getWidth()*0.75),volltextDesktoppane.getHeight());
        	
        	//grafikInternalframe
        	grafikInternalframe.setTitle("Bild");
      	 	grafikInternalframe.setMaximizable(true);
        	grafikInternalframe.setVisible(true);
        	System.out.println("(int)(volltextDesktoppane.getWidth()*0.75 ==="+(int)(volltextDesktoppane.getWidth()));
        	//grafikInternalframe.setBounds(300,0,300,300);
        	grafikInternalframe.setBounds((int)(volltextDesktoppane.getWidth()*0.75),0,(int)(volltextDesktoppane.getWidth()*0.25),volltextDesktoppane.getHeight());
       		grafikInternalframe.getContentPane().add(volltextgrafikScrollpane);
       		pack();
       		
        //desktopPane
        volltextDesktoppane.add(volltextbearbeitenInternalframe,BorderLayout.CENTER);
        volltextDesktoppane.add(grafikInternalframe,BorderLayout.WEST);
        
        //TextNavigationsToolbar
        textnaviButton.setText("Text");
        grafiknaviButton.setText("grafik");
        textnaviToolbar.add(textnaviButton);
        textnaviToolbar.add(grafiknaviButton);
        
        //VollextPanel
       	volltextPanel.add(textnaviToolbar);
		volltextPanel.add(volltextDesktoppane);

Hier müsste die Reihenfolge wohl stimmen oder?
 
G

Guest

Gast
Anonymous hat gesagt.:
hier nochmal der relevante code. Kann nicht alles posten da diese klasse über 1100 zeilen hat

Code:
        //internalframes
        	//volltextbearbeitenInternalFrame
        	volltextbearbeitenInternalframe.setTitle("Volltext bearbeiten");
	       	volltextbearbeitenInternalframe.getContentPane().setLayout(new java.awt.BorderLayout());
        	volltextbearbeitenInternalframe.getContentPane().add(volltextbearbeitenPanel,java.awt.BorderLayout.CENTER);
        	volltextbearbeitenInternalframe.setMaximizable(true);
      	  	volltextbearbeitenInternalframe.setVisible(true);
      	  	//volltextbearbeitenInternalframe.setBounds(0,0,300,300);
        	volltextbearbeitenInternalframe.setBounds(0,0,(int)(volltextDesktoppane.getWidth()*0.75),volltextDesktoppane.getHeight());
        	
        	//grafikInternalframe
        	grafikInternalframe.setTitle("Bild");
      	 	grafikInternalframe.setMaximizable(true);
        	grafikInternalframe.setVisible(true);
        	System.out.println("(int)(volltextDesktoppane.getWidth()*0.75 ==="+(int)(volltextDesktoppane.getWidth()));
        	//grafikInternalframe.setBounds(300,0,300,300);
        	grafikInternalframe.setBounds((int)(volltextDesktoppane.getWidth()*0.75),0,(int)(volltextDesktoppane.getWidth()*0.25),volltextDesktoppane.getHeight());
       		grafikInternalframe.getContentPane().add(volltextgrafikScrollpane);
       		pack();
       		
        //desktopPane
        volltextDesktoppane.add(volltextbearbeitenInternalframe,BorderLayout.CENTER);
        volltextDesktoppane.add(grafikInternalframe,BorderLayout.WEST);
        
        //TextNavigationsToolbar
        textnaviButton.setText("Text");
        grafiknaviButton.setText("grafik");
        textnaviToolbar.add(textnaviButton);
        textnaviToolbar.add(grafiknaviButton);
        
        //VollextPanel
       	volltextPanel.add(textnaviToolbar);
		volltextPanel.add(volltextDesktoppane);

und ja der ganze code ist ziehmlich am schluss der klasse. Danach erstell ich nur nochmal ein anderes Frame welches mit dem hier nix zu tun hat.
Hier müsste die Reihenfolge wohl stimmen oder?
 

dotlens

Top Contributor
nein!
Der Layoutmanager wird erst aufgerufen wenn dein Frame gezeichnet wird. und erst dann besteht eine grösse....
 
G

Guest

Gast
ja gut ich habe es nun in der Reihenfolge versucht und es hat auch nicht hingehauen:

-> internalframe1 erstellen
->internalframe2 erstellen
->internalframe1 dem desktoppane adden
->internalframe2 dem desktoppane adden
->desktoppane erstellen
->desktoppane dem frame adden
->pack() setzen
-> setbounds für 1 und 2 setzen
 

dotlens

Top Contributor
Hier ein bsp:
Schau es dir an
Code:
import java.awt.BorderLayout;
import javax.swing.*;

public class Bsp extends JFrame{

	public static void main(String[] args) {
		JFrame frame = new Bsp();
		frame.setVisible(true);
		System.out.println("nach frame erstellen: " + frame.getWidth());
	}
	
	Bsp(){
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.getContentPane().add(new JButton("Bsp"), BorderLayout.CENTER);
		System.out.println("vor pack(): " + this.getWidth());
		pack();
		System.out.println("nach pack(): " + this.getWidth());
	}
}

Ausgabe:
vor pack(): 0
nach pack(): 112
nach frame erstellen: 112
 
G

Guest

Gast
Ja hab ich es etwa nicht so:
Code:
//internalframes
      //volltextbearbeitenInternalFrame
      volltextbearbeitenInternalframe.setTitle("Volltext bearbeiten");
      volltextbearbeitenInternalframe.getContentPane().setLayout(new java.awt.BorderLayout());
      volltextbearbeitenInternalframe.getContentPane().add(volltextbearbeitenPanel,java.awt.BorderLayout.CENTER);
      volltextbearbeitenInternalframe.setMaximizable(true);
      volltextbearbeitenInternalframe.setVisible(true);
      	  	        	        	
      //grafikInternalframe
      grafikInternalframe.setTitle("Bild");
      grafikInternalframe.setMaximizable(true);
      grafikInternalframe.setVisible(true);
      grafikInternalframe.getContentPane().add(volltextgrafikScrollpane);
       		
       		
        //desktopPane
        volltextDesktoppane.add(volltextbearbeitenInternalframe);
        volltextDesktoppane.add(grafikInternalframe);
        
        
        //TextNavigationsToolbar
        textnaviButton.setText("Text");
        grafiknaviButton.setText("grafik");
        textnaviToolbar.add(textnaviButton);
        textnaviToolbar.add(grafiknaviButton);
        
        //VollextPanel
       	volltextPanel.add(textnaviToolbar);
		volltextPanel.add(volltextDesktoppane); 
       	pack();
volltextbearbeitenInternalframe.getContentPane().setBounds(0,0,(int)(volltextDesktoppane.getWidth()*0.75),volltextDesktoppane.getHeight());
       	grafikInternalframe.getContentPane().setBounds((int)(volltextDesktoppane.getWidth()*0.75),0,(int)(volltextDesktoppane.getWidth()*0.25),volltextDesktoppane.getHeight());
 

mic_checker

Top Contributor
btw. was hast du eigentlich vor, ich sag nur Variablennamen ;)

Vielleicht solltest du deine Variablennamen etwas kürzer machen, z.B. "volltextbearbeitenInternalframe"...

nur ne kleinigkeit. erleichtert dir später das programmieren.
 
G

Guest

Gast
Die musste ich absichtlich so lang wählen da ich sonst den überblick verlier. Hab mehr als hundert Komponenten auf der Gui die alle ähnlich heißen würden und so überseh ich nicht so leicht etwas.

Was ich vor hab. Ich mach eine Diplomarbeit und stehe etwas unter Zeitdruck, deswegen wäre es sehr schön wenn ich dieses lächerliche Problem bald gelöst hätte.
 

dotlens

Top Contributor
nein hast du nicht.
Der Konstruktor deines Frames muss schon durchlaufen sein, oder zumindest scho pack() aufgerufen sein worden. sonst hat noch nichts eine Grösse.
Versuch pack() einzubauen, oder dein getWidth in die methode zu übernehmen, in der du dein Frame erstellst (vermutlich main).
 
G

Guest

Gast
dotlens hat gesagt.:
nein hast du nicht.
Der Konstruktor deines Frames muss schon durchlaufen sein, oder zumindest scho pack() aufgerufen sein worden. sonst hat noch nichts eine Grösse.
Versuch pack() einzubauen, oder dein getWidth in die methode zu übernehmen, in der du dein Frame erstellst (vermutlich main).

Guck mal genauer auf den vorigen code.
Da steht pack(); -> in der 3. letzten Zeile.
 

dotlens

Top Contributor
ich weiss ja nicht was für einen seltsamen code du geschrieben hast. aber anhand meines einfachen Beispieles kannst du erkennen wie es funktioniert.
Ausserdem hat setSize() keinen einfluss, wenn du mit LayoutManagern arbeitest und nicht das null-Layout verwendest.
arbeite mit dem GridBagLyout, dann kannst du angeben, was wie breit sein soll...
 
G

Guest

Gast
dotlens hat gesagt.:
ich weiss ja nicht was für einen seltsamen code du geschrieben hast. aber anhand meines einfachen Beispieles kannst du erkennen wie es funktioniert.
Ausserdem hat setSize() keinen einfluss, wenn du mit LayoutManagern arbeitest und nicht das null-Layout verwendest.
arbeite mit dem GridBagLyout, dann kannst du angeben, was wie breit sein soll...

Ja ich versteh das beispiel schon. Nur versteh ich nicht wieso mein Code nicht das macht was ich will. Denn eigentlich sollte e rja gehen - hm
 

dotlens

Top Contributor
dotlens hat gesagt.:
ich weiss ja nicht was für einen seltsamen code du geschrieben hast. aber anhand meines einfachen Beispieles kannst du erkennen wie es funktioniert.
Ausserdem hat setSize() keinen einfluss, wenn du mit LayoutManagern arbeitest und nicht das null-Layout verwendest.
arbeite mit dem GridBagLyout, dann kannst du angeben, was wie breit sein soll...
Wieso machst du dir die ganze Arbeit, wenns nichts bringt??
 
G

Guest

Gast
Naja, ich schau mir das jetzt mal mit dem GridbagLayout an. Vielleicht gehts ja so irgendwie. Danke auf jedenfall für die raschen und vorallem vielen Antworten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Double or Float zusammenrechnen Java Basics - Anfänger-Themen 15
I Review von euch erwünscht, double Rechnung falsch Java Basics - Anfänger-Themen 34
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
MoxMorris Integer.MAX_VALUE und Double.MAX_VALUE Unterschied Java Basics - Anfänger-Themen 3
krgewb Double mit zwei Nachkommastellen Java Basics - Anfänger-Themen 2
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
Lion.King Fehler in double und int Java Basics - Anfänger-Themen 7
F java: incompatible types: possible lossy conversion from double to int Java Basics - Anfänger-Themen 1
J Double Variable und Addition Java Basics - Anfänger-Themen 2
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
Kotelettklopfer Variablen Double zwingen Ganzzahlen mit 2 Nachkommastellen auszugeben Java Basics - Anfänger-Themen 10
A possible lossy conversion from double to int Java Basics - Anfänger-Themen 5
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
J Transformation zweier Integer in ein Double Java Basics - Anfänger-Themen 26
N The method setSaldo(double) in the type Konto is not applicable for the arguments (int, int) Java Basics - Anfänger-Themen 2
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
V Erste Schritte Die Nuller bei double NICHT abschneiden Java Basics - Anfänger-Themen 4
Y Datentypen Double Division ungenau Java Basics - Anfänger-Themen 45
L Datentypen Rechnen und abrunden mit double Java Basics - Anfänger-Themen 7
M Writer für unterschiedliche Obj/inbt/double erstellen? Java Basics - Anfänger-Themen 1
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
P Hilfe bei Double Java Basics - Anfänger-Themen 1
B Rückgabe von zwei Werten: String und double Java Basics - Anfänger-Themen 14
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
M Konvertierung String -> double Java Basics - Anfänger-Themen 8
A Double Scan eingrenzen Java Basics - Anfänger-Themen 2
O Erste Schritte Potenzmethode per double Java Basics - Anfänger-Themen 11
A Random Double mit Math.round() runden? Java Basics - Anfänger-Themen 1
H Double oder nicht? Java Basics - Anfänger-Themen 7
J int array als double array ausgeben Java Basics - Anfänger-Themen 9
M Int und Double in Array speichern Java Basics - Anfänger-Themen 1
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
B Hashing (verkettet/double) Java Basics - Anfänger-Themen 0
L Konvertieren von String zu double?! Java Basics - Anfänger-Themen 6
V Operatoren Warum kommt bei double bei den Nachkommastellen irgendwann eine 2?! (1.20000000000002) Java Basics - Anfänger-Themen 5
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
E Bruch erstellen - Von Int zu Double Ergebnis Java Basics - Anfänger-Themen 24
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
I Double.ParseDouble 2 Textfelder Java Basics - Anfänger-Themen 1
M JComboBox feste double Werte zu ordnen Java Basics - Anfänger-Themen 8
P Datentypen Kann ich bei double Komma statt Punkt eingeben? Java Basics - Anfänger-Themen 14
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
L Bei falscher Eingabe soll NaN zurückgegeben werden, Rückgabetyp jedoch double Java Basics - Anfänger-Themen 3
V Variablen Double später deklarieren Java Basics - Anfänger-Themen 7
V double = 1.34823e-300 Java Basics - Anfänger-Themen 5
W double*double error Java Basics - Anfänger-Themen 4
kilopack15 Mehr Nachkommastellen mit double Java Basics - Anfänger-Themen 14
T Input/Output Double und String als Eingabe einlesen Java Basics - Anfänger-Themen 9
J [Rundungsfehler bei Double] Grundkurs Java: Checke Lösungsweg nicht Java Basics - Anfänger-Themen 1
W In einer Function<Double, Double> undefinierte Rechenoperationen abfangen? Java Basics - Anfänger-Themen 3
T set Metode für Double Java Basics - Anfänger-Themen 6
Hijo2006 String to Double Java Basics - Anfänger-Themen 4
K Double Wert runden und in Int umwandeln Java Basics - Anfänger-Themen 7
A Kommafehler beim double einleseen korrigieren Java Basics - Anfänger-Themen 2
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
das_leon String zu double konventieren Java Basics - Anfänger-Themen 1
K Genauer als Double? Java Basics - Anfänger-Themen 4
T Double.parseDouble(args[0]) Java Basics - Anfänger-Themen 13
A Java Ungenauigkeit double Java Basics - Anfänger-Themen 6
B Methoden The method mirror(double[]) in the type Convolution is not applicable for the arguments (double) Java Basics - Anfänger-Themen 8
C Typumwandlung von int<-->double Java Basics - Anfänger-Themen 6
M Double Wert auf 2 Kommastellen runden Java Basics - Anfänger-Themen 2
S Regelabfragen aus Double-Array Java Basics - Anfänger-Themen 2
A Erste Schritte Double Wert aus String zu int Java Basics - Anfänger-Themen 2
P Rückgabe erflogt nicht als Double Java Basics - Anfänger-Themen 2
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
P scanner ein Double einlesen Java Basics - Anfänger-Themen 10
T Java double berechnung fehler Java Basics - Anfänger-Themen 2
S double[x] , double[y] zu Point[] points kopieren? Java Basics - Anfänger-Themen 15
G double in float umwandeln Java Basics - Anfänger-Themen 2
F double[] an andere Methode übergeben Java Basics - Anfänger-Themen 1
B Datentypen Test float und double speichern Zahlen nur ungefähr Java Basics - Anfänger-Themen 4
S Datentypen double - kommastellen abschneiden Java Basics - Anfänger-Themen 6
M int double int double Graph Java Basics - Anfänger-Themen 3
K ArrayList<Double> --> double[] array Java Basics - Anfänger-Themen 5
Z Double in komma und Punkt akzeptieren -> Robusteeingabe Java Basics - Anfänger-Themen 7
S Double und Gleitkommazahlen mit JUnit testen Java Basics - Anfänger-Themen 7
B Datentypen Multiplzieren mit double wird ungenau Java Basics - Anfänger-Themen 4
K Von einem Double wert nur die Zahl vor dem Komma verwenden Java Basics - Anfänger-Themen 9
F Double neu formatieren mit NumberFormat Java Basics - Anfänger-Themen 2
M Double-Ausgabe in JTextField fehlerhaft Java Basics - Anfänger-Themen 2
T Problem mit double-Formatierung Java Basics - Anfänger-Themen 3
M Double Zahl in Grad Zahl Java Basics - Anfänger-Themen 7
M Datentypen Ergebniss- Double to String- wird nicht angezeigt Java Basics - Anfänger-Themen 13
S Double mithilfe eines Scanners so einlesen, dass ich damit rechnen kann Java Basics - Anfänger-Themen 4
M Die Double-Variable rundet? Java Basics - Anfänger-Themen 1
llabusch Methoden Methoden überlagern - entweder int || double Java Basics - Anfänger-Themen 10
S Double, int, Berechnung Java Basics - Anfänger-Themen 3
K Datentypen Wertebereich float/double - Warum nicht hoch -1 Java Basics - Anfänger-Themen 6
A Double[] Array zahlen per Argument übergeben Java Basics - Anfänger-Themen 5
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
D Unterschied zwischen double und Double Java Basics - Anfänger-Themen 4
M Double-Zahlen auf Intervalle runden Java Basics - Anfänger-Themen 3
D Schon wieder double -.- Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben