Helló!
Saját java dialógusablakot szeretnék csinálni, de sehol sem találok leírást a JDialog-hoz, és elsőre nem triviális a használata. A JoptionPane nem felel meg mert egy oylan dialógus ablak kéne amiben két szövegmező és két gomb van.
Ha valaki tud ehhet tutorial-t (vagy esetleg van saját kódja) az légyszi dobjon rá egy linket, mert ez egy házihoz kell amire csak korlátozott idő áll rendelkezésre.
Előre is köszi.
Szati
- 2356 megtekintés
Hozzászólások
http://www.java2s.com/Tutorial/Java/0240__Swing/1220__JDialog.htm
Most találtam, remélem segít.
- A hozzászóláshoz be kell jelentkezni
Nem sajnos ez nem nagyon segít, ezt megtaláltam én is.
- A hozzászóláshoz be kell jelentkezni
final JPasswordField pass = new JPasswordField();
final JLabel label = new JLabel("Írd be a jelszavad: ");
JOptionPane opt = new JOptionPane(new Object[]{label, pass}, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
JDialog dialog = opt.createDialog("Jelszó: ");
// ez ide azért kell, hogy a fókusz a jelszómezőn legyen
dialog.addComponentListener(new ComponentAdapter(){
@Override
public void componentShown(ComponentEvent e){
pass.requestFocusInWindow();
}
});
dialog.setVisible(true);
int res;
try{res = (Integer)opt.getValue();}
catch(NullPointerException e){ return; }
dialog.dispose();
if(res!=JOptionPane.OK_OPTION) return;
Ez csak egy példa, ha valami nem világos, akkor kérdezz :)
- A hozzászóláshoz be kell jelentkezni
Szerintem a hagyományos JFrame bőven elegendő. Abba mindent bele tudsz pakolni, amit szeretnél.
import java.awt.*;
import javax.swing.*;
public class TextsAndButtons extends JFrame {
JTextArea t1 = new JTextArea("Első szövegmező");
JTextArea t2 = new JTextArea("Második szövegmező");
JButton b1 = new JButton("B1");
JButton b2 = new JButton("B2");
public TextsAndButtons() {
super("My Dialog");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout grid = new GridLayout(3,1);
grid.setVgap(6);
setLayout(grid);
JPanel panel = new JPanel();
FlowLayout flow = new FlowLayout();
panel.setLayout(flow);
panel.add(b1);
panel.add(b2);
add(t1);
add(t2);
add(panel);
setVisible(true);
}
public Insets getInsets() {
Insets border = new Insets(45, 10, 10, 10);
return border;
}
public static void main(String[] args) {
TextsAndButtons tab = new TextsAndButtons();
}
}
- A hozzászóláshoz be kell jelentkezni
Köszi ezt nagyjábol értem! (majd azért mindjárt kérdezek még egy két dolgot)
Azt nem tudod esetleg hogy ha NetBeans-ban (6.0-ás verzió) csináltam egy iylen dialógus ablakot akkor azt hogy tudom elődobni?
- A hozzászóláshoz be kell jelentkezni
ha az "elodobni" azt erted, hogy megjeleniteni, akkor a setVisible(true)-val lehet megjeleniteni. Persze a layout-tol fuggoen lehet, hogy nem fog megjelenni, ezert a setVisible elott setSize(x,y)-nal adj egy kivant meretet.
- A hozzászóláshoz be kell jelentkezni
Az én példámban a setVisible(true) függvény már meg van hívva. Azt még egyszer nem kell megtenned!
- A hozzászóláshoz be kell jelentkezni
A program futtatására gondolsz?
NetBeans-ben F11-vel lefordítod.
Terminál ablak nyitása.
cd /.../yourpojectname/build/classes
java TextsAndButtons
- A hozzászóláshoz be kell jelentkezni
Most nézem csak, hogy van lehetőség a NetBeans-ben közvetlenül is futtatni a programot az F6 gomb megnyomásával.
- A hozzászóláshoz be kell jelentkezni