Re: [問題] showMessageDialog的顯示位置
※ 引述《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
10/15 13:28, 1F
推
10/15 13:42, , 2F
10/15 13:42, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):