JOptionPane neues outfit mit BasicOptionPaneUI?

Status
Nicht offen für weitere Antworten.

vegeta

Aktives Mitglied
Hallo ich bin es mal wieder,

hat jmd. von euch schon mal mit dem BasicOptionPaneUI gearbeitet?

ich wollt das layout von einer JOptionPane ändern. für den anfang wollte ich meine eigenen Buttons verwenden.

also alte raus und neue rein.

danke gruss Said

ps. wenn ihr noch mehr input braucht stehe ich gerne zur verfügung

ciao
 
grüß dich,

ja ich hab mir das angesehen aber ich weis nicht wie man das

anstellt.

ich schaue mir die api noch an vielleicht kann ich mit deiner hilfe

einwenig den prozess beschleunigen
 
ein beispiel mit quellcode wo man mit der BasicOptionPaneUi arbeitet wäre hilfreich. Weißt du wie die statischen Methode wie showConfirmdialog von OptionPane funktioniert? ich habe ein dialog und will auch eine methode die dieses dialog aufruft und dann als rückgabewert ein int zurück liefert woran ich erkennen kann was der user ausgewählt hat
 
du würdest dir bestimmt leicher tun den dialog selbst zu implementieren als die jop zu erweitern :-/
 
hi ja das hab ich mir auch schon gedacht, hab dann mein layout aber wie kann ich ohne den Dialog zu instanzieren, also mit einer statischen methode wie showconfirmdialog meinen Dialog öffnen und beim betätigen eines buttens einen int wert zurück geben.

beispiel

int resultat= myDialog.showconfirmdialog(...);

in JOptionsPane wird wie folgt gearbeitet, also in der static methode:

ein JDialog wird erzeugt angezeigt und am ende mit

OptionPane.getValue ermittelt was gedrückt wurde

ok danke
 
der dialog muss modal sein, dann wird deine methode erst abgearbeitet wenn der benutzer den dialog schliesst
 
ok der Dialog ist modal, jetzt will ich beispielsweise eine 10 für OK zurück liefern, weil ich auf dem Dialog ein OK button hab welchen ich benutzen kann um den dialog zu schließen.
das bekomme ich nicht hin
 
du hängst einen actinolistener an den button, setzt eine instanzvarioable auf 10 falls der button gedrückt wurde und lieferst die variable tzurück :?
 
joar ich hab sowas schonma geschrieben, hier der gekürzte/vereinfachte/relvante code:

Code:
private JButton search, cancel;

public static final int FIND_OPTION = 0;
public static final int CANCEL_OPTION = 1;

private int option = -1;


//...
public int showDialog() {
	JDialog d = ...;
	ActionListener l = new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			if(e.getSource() == cancel) {
				option = CANCEL_OPTION;
				d.setVisible(false);
			} else {
				option = FIND_OPTION;
				d.setVisible(false);
			}
		}
	};
	search.addActionListener(l);
	cancel.addActionListener(l);
	d.setModal(true);
	d.setTitle(b.getString("find"));
	d.add(this);
	d.pack();
	d.setResizable(false);
	d.setLocationRelativeTo(parent);
	d.setVisible(true);
	return option;
}
 
wo befinden sich die search button, auf dem dialog?
d ist dann ein von dir angepasster dialog.
und wo liegt die showDialog Methode?

ich bin mittlerweile einwenig weiter, aber dein Dialog ist ne gute alternative.
 
seach und cancel liegen auf dem dialog, ja
die methode liegt in einer klasse von mir um nen dialog anzuzeigen. die klasse hab ich weggelassen da der code irrelevant ist.

du kannst den code oben weitestgehend genauso übernehmen
 
wenn search und cancel auf dem dialog liegen und die showMethode in einer von dir geschriebenen Klasse liegt die dazu dient den Dialog anzuzeigen, wie kannst du auf die butten einfach so zugreifen? die sind doch verborgen.

dank dir
 
hä? nein warum !? die buttons sind doch normale instanzvariablen der klasse :?
 
hym ich bin jetzt einwenig verwirrt. die buttons liegen nicht auf dem Dialog.

wie kann ich ein dialog beenden, wie lautet da der befehl?
 
die buttons liegen natürlich auf dem dialog was bringen mir die buttons auch wenn ich sie nicht anzeige.

setVisible(false); um dialog zu schilessen
 
ich bin eigentlich c++ programmierer und dort ist es so das man die diealoge noch mal per hand entfernen muss
 
ok wollt dir noch mal danken roar für deine hilfe hast mich echt weiter gebracht thanks
wie lange arbeitest du schon mit java?
 
du kannst auch dispose() benutzen dann werden noch resourcen freigeräumt aber im endeffekt komtm das gleiche raus

seit etwa 2 jahren
 
danke, ich hab hier noch andere offene fragen vielleicht kannst du mir dazu auch deine meinung sagen, besonders habe ich schwierigkeiten mit JTextPane. die Textpane ist in einem JScrollPane.
Die Textpane zeigt mir htmlcode an, dazu schreibe ich in das darunterliegende document. Problem ist das immer wenn sich der Inhalt ändert die Scrollpane sich automatisch an den anfang scrolt, was ich aber nicht haben möchte. ok bis dann
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben