前提・実現したいこと
まず、決定ボタンを押すと2つ目のウィンドウが表示されます。
次にメニューバーのゲットボタンを押すと2つ目のウィンドウのRectを取得できるようにしたいです。
どこでウィンドウのgetX(),getY()を実行すればいいんでしょうか?
本来の処理内容は省いてます。
該当のソースコード
import java.awt.event.*; import java.awt.*; import javax.swing.*; public class application { public static void main(String[] args) { mainFrame f=new mainFrame(); f.initialize(); //メインフレーム生成 } } class mainFrame extends JFrame implements MouseListener{ private static final long serialVersionUID = 1L; JMenu menu1; int MAIN_WIDTH=650,MAIN_HEIGHT=180; public void initialize() { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setBounds(screenSize.width/2-MAIN_WIDTH/2,screenSize.height/2-MAIN_HEIGHT/2,MAIN_WIDTH,MAIN_HEIGHT); setVisible(true); setResizable(false); } public mainFrame() { setDefaultCloseOperation(EXIT_ON_CLOSE); menu1=new JMenu("get"); //メニューバーセット menu1.setFont(new Font("MS ゴシック", Font.BOLD, 20)); menu1.addMouseListener(this); this.add(menu1); menubar.add(menu1); getRootPane().setJMenuBar(menubar); mainPanel mp = new mainPanel(); this.add(mp); mp.disp(); } public void mouseClicked(MouseEvent e){ //getボタンを押すとウィンドウ情報取得 if(e.getSource().equals(menu1)) { subFrame f=new subFrame(); f.get(); } } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} } class subFrame extends JFrame{ private static final long serialVersionUID = 1L; public void subFrame_1(){ //2つ目のウィンドウパラメータのセット setBounds(0,0,900,900); setVisible(true); mainProcess sp = new mainProcess(); add(sp); } public void get(){ try{ /* *ここで2つ目のウィンドウの位置とサイズの取得がしたいです */ }catch(Exception e) {} } } class mainPanel extends JPanel implements ActionListener{ //メインフレームのパネル private static final long serialVersionUID = 1L; private JButton inDis; public void disp(){ inDis=new JButton("決定"); //ボタンセット inDis.setBounds(500, 50, 60, 25); add(inDis); inDis.addActionListener(this); } public void actionPerformed(ActionEvent evt) { subFrame f=new subFrame(); //新しいウィンドウを表示 f.subFrame_1(); } } class mainProcess extends mainPanel{ //色々処理するとこ private static final long serialVersionUID = 1L; mainProcess(){} }
回答2件
あなたの回答
tips
プレビュー