Re: [問題] showMessageDialog的顯示位置

看板java作者 (星泉幼子)時間16年前 (2009/10/15 03:29), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《faithpiano (恩)》之銘言: : 想要請問大家 : JOptionPane.showMessageDialog如何改變他的顯示位置呢? : 就是要自己指定位置 : 好像並不能使用setBounds這種東西.. : 謝謝囉^^ 如同 s 大用的, 可以用 JOption 的 JDialog 來達到 先 new 一個專用的 JOptionPane 以一些method做設定, 像是 .setMessage() .setMessageType() .setOptions() .setOptionType() .setIcon() 依需求使用 然後用 .createDialog() 來拿到 JDialog 之後對拿到的 JDialog 做位置設定 .setLocation() 最後把它 show 出來, 完工! 以下為測試用原始碼 J.java import java.awt.*; import java.awt.event.*; import javax.swing.*; class J extends JFrame implements ActionListener { private JTextField xJTF = new JTextField("0", 4); private JTextField yJTF = new JTextField("0", 4); private JButton showBtn = new JButton("Show"); private JOptionPane jop; public static void main(String[] args) { new J().setVisible(true); } //{END main} J() { setSize(400,300); setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel cp = (JPanel)getContentPane(); JPanel locPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5)); locPane.add(new JLabel("X: ")); locPane.add(xJTF); locPane.add(new JLabel("Y: ")); locPane.add(yJTF); cp.add(locPane, BorderLayout.CENTER); showBtn.addActionListener(this); cp.add(showBtn, BorderLayout.SOUTH); jop = new JOptionPane(); } //{END constructor} public void actionPerformed(ActionEvent ae) { int x=0, y=0; try { x=Integer.parseInt(xJTF.getText()); } catch(NumberFormatException nfe) { xJTF.setText("0"); } try { y=Integer.parseInt(yJTF.getText()); } catch(NumberFormatException nfe) { yJTF.setText("0"); } jop.setMessage("Test Message"); JDialog jd = jop.createDialog(this, "My Title"); jd.setLocation(x, y); jd.setVisible(true); } //{END} actionPerformed() } //{END class} J -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.185.103

10/15 13:28, , 1F
總之還是要使用JDialog囉 因為之前有點趕 才想直接改
10/15 13:28, 1F

10/15 13:42, , 2F
謝謝喔
10/15 13:42, 2F
文章代碼(AID): #1ArYQ5ho (java)
文章代碼(AID): #1ArYQ5ho (java)