- 締切済み
ウィンドウの現在位置
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hrm_mmm
- ベストアンサー率63% (292/459)
>アプリケーションのウィンドウをユーザがマウスで移動させたとき アプリケーションウィンドウの上部タイトルバー部分をマウスでドラッグして移動する時のことですか? >ユーザがマウスで移動させた位置にフレームを再描画させる java 側でわざわざ記述しなくてもOSかJVMが勝手にやってくれるように思うのだけど? 同じ表示じゃなくて再描画時の表示をどこか変更したいなら f.addWindowListener( new WindowAdapter(){ public void windowStateChanged(WindowEvent e){ // 表示の変更記述して、repaintを呼び出す。 } } ); を記述してみるとか?
関連するQ&A
- 他のクラスからフレームに追加で描画していく方法
Javaで、他のクラスで作ったフレームに別のクラスから追加で描画をしていくプログラムを作りたいのですが、 ネット上のサンプルプログラムを見てもフレームを作成する時に描画内容を記述、もしくは描画内容のクラスを呼び出すというものばかりでした。 例: class Frame{ static void frame(){ JFrame frame = new JFrame(); frame.setBounds(0,0,400,300); フレームへの描画内容 or 描画内容のクラス呼び出し; frame.setVisible(true); } } ↑のような例とは違い、先にフレームを作っておいて、その後に繰り返し文内の描画内容を同じフレームに追加で描画させていきたいと思っています。 繰り返し文内の描画内容はプログラム実行中の操作によって変化します。 メインメソッド{ フレーム作成; while (true){ 描画内容; } } ↑のようにしたいと思っています。 どのようにすれば先に作ったフレームに追加で描画ができるのでしょうか? よろしくお願いします。
- 締切済み
- Java
- swingのJframeについて
JFrameについて質問があるのですが import javax.swing.*; public class JFrameTest extends JFrame{ public static void main(String[] args){ JFrameTest frame = new JFrameTest(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setTitle("タイトル"); frame.setVisible(true); } JFrameTest(){ JPanel p = new JPanel(); Container contentPane = getContentPane(); ContentPane.add(p); pack(); } } このプログラムと import javax.swing.*; public class JFrameTest{ public static void main(String[] args){ JFrame frame = new JFrame("フレームのタイトル"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds( 10, 10, 300, 200); frame.setVisible(true); JPanel p = new JPanel(); Container contentPane = frame.getContentPane(); frame.ContentPane.add(p); frame.pack(); } } このプログラムは何が違うのでしょう? やってることはまったく一緒だと思ってたのですが、全然違うみたいです。 上のプログラムの JFrameTest(){ はコンストラクタと呼ばれるものなのでしょうか? しょぼい質問で申し訳ないのですが誰か教えていただけないでしょうか。
- ベストアンサー
- Java
- java swing での質問です。
javaのプログラミングをeclipseでしているのですが swingで行き詰ってしまいました。 タブペインを使いタブパネルを作り、その中にボタンを配置したのですが、 ボタンの位置をsetBoundsで動かすことができませんでした。 他の命令を使わなければならないのでしょうか? プログラミング自体が初心者のため、説明に不備があると思いますが 助けていただけると幸いです。 ひどいプログラミングかと思いますが張らせていただきました package gui; import java.awt.*; import javax.swing.*; public class ReisyokuMenu extends JFrame{ /*serialVersionUID*/ private static final long serialVersionUID=1L; /*コンポーネント作成*/ JButton syokuzaiBtn = new JButton("食材一覧"); JButton syoumiBtn = new JButton("賞味期限順"); JButton bunruiBtn = new JButton("分類"); JButton returnBtn=new JButton("Topへ"); JPanel tabPanel1 = new JPanel(); JPanel tabPanel2 = new JPanel(); JTabbedPane tabbedpane = new JTabbedPane(); public ReisyokuMenu(){ /*Closeボタンでアプリケーションが終了しないように設定*/ setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); /*フレームサイズを変更できないように設定*/ setResizable(false); /*フレームコンテナのインスタンスを生成*/ Container cPane = getContentPane(); /*レイアウトマネジャを利用しない(座標を指定する)*/ cPane.setLayout(null); setLocationRelativeTo(null); setSize(400, 380);//setBoundsはy、x、幅、高さを指定するのでsetLocationRelativeToで位置指定をする為に使用。 setTitle("一人暮らし支援ツール");//アプリケーションタイトルを入れる tabbedpane.addTab("食材を見る", tabPanel1); tabbedpane.addTab("食材を探す", tabPanel2); tabPanel1.add(syokuzaiBtn); tabPanel1.add(syoumiBtn); tabPanel1.add(bunruiBtn); syokuzaiBtn.setLocation(50, 80);//「選択」ボタン syoumiBtn.setBounds(10,10,325,120); bunruiBtn.setBounds(10,270,90,40); tabPanel2.add(new JLabel("食材名:")); tabPanel2.add(new JTextField("", 10)); setContentPane(tabbedpane); } public void setVisible(boolean isVisible){ if(isVisible){ /*フレームの表示位置を指定(x,y)*/ setLocation(200,200); } /*フレームを表示*/ super.setVisible(isVisible); } }
- 締切済み
- Java
- 画像の表示について(初心者より)
今、eclipseを使用して任意の画像の表示をするプログラムを作ってるのですが、JFrameを使用しメニューを実装した上で画像を表示させると画像の裏にメニューのリンク(というのかわかりませんが)が表示されてしまいます。どのように表記すればいいのでしょうか?関係ありそうな部分を記載しますのでご教授おねがいします。 public myimage(){ try { bimage = ImageIO.read(new File"sample.jpg")); } catch (Exception e) { e.printStackTrace(); bimage = null; } JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(0,0,640, 480); frame.getContentPane().add(c); frame.setJMenuBar(buildMenu()); frame.setLocationRelativeTo(null); frame.setVisible(true); }
- 締切済み
- Java
- スクロールバー
Javaを始めたばかりの者です。 すごく基本的な質問をさせて頂きます。 恥ずかしいのですが、スクロールバーを付けようとしても付けることができませんでした。 以下がそのプログラムですが、どうすればよいか正直わかりません。よければ教えて下さい。 import java.awt.*; import javax.swing.*; public class ScrolTest { public JPanel panel =new JPanel(); public static void main (String[] argv) { JFrame frame =new JFrame("てすとー"); frame.setSize(50000,6000); Scrollbar scrollbar = new Scrollbar(); frame.add(scrollbar, null); scrollbar.setBounds(new Rectangle(220, 15, 15, 180)); frame.show(); } }
- 締切済み
- Java
- javaのswingについて
swingを使う場合、絶対mainの中で udp u=new udp(); JFrame frame = new JFrame("チャットプログラム"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウィンドウを閉じたときにアプリケーションを終了する frame.setJMenuBar(u.menuBar); frame.getContentPane().add(u.sp, "North"); frame.getContentPane().add(u.buttonPanel, "Center"); frame.getContentPane().add(u.tfPanel, "South"); frame.pack(); // ウィンドウを適切な大きさにする frame.setVisible(true); // ウィンドウを可視化する などをしないといけないのでしょうか? mainのクラスからgamenといったクラスをnewするかたちにする方法はありますか? 何か良い方法はないでしょうか?
- 締切済み
- Java
- Swingについての質問です
Swingについての質問です まだJava初心者です^^。とんでもない質問でしたらすいません。 Swingの中の、JFrameを使って、ある図形を描画するという場面です。描画はできたのですが、コンピュータの画面から図形がはみ出してしまって、全体を見る事ができません。そこで、スクロールバーを表示したいと思っているのですが、その方法はどうすれば良いのでしょうか? 下に、普段私が使っている、一本の線を描画するサンプルを書いておきます。 import java.awt.*; import javax.swing.*; public class Sample extend JPanel { public static void main(String[] args){ JFrame frame = new JFrame("Sample"); TestFrame tf = new TestFrame(); frame.add(tf); frame.getComponents().add(tf); frame.setSize(120, 120); //ウインドウサイズを120×120に指定 frame.setBackground(Color.WHITE); frame.setVisible(true); } } class TestFrame extends JPanel{ void paintComponent(Graphics g){ g.drawLine(10, 10, 100, 100); //(10, 10)から(100, 100)に線を描画 } } もちろんこの場合はスクロールバーは必要ないですが、このような場合でもウインドウサイズを50×50のような小さいサイズにしてしまったときだけスクロールバーが現れるようにできたらもっと嬉しいです。 回答宜しくお願いします。
- ベストアンサー
- Java
- 「継承されたメソッドの可視性を下げることは出来ません。」というエラーの
「継承されたメソッドの可視性を下げることは出来ません。」というエラーの意味がわかりません。 JAVA初心者です、宜しくお願いします。 下のようなコードを書きましたが、"void paint(Graphics g)"の箇所で 「Canvasから継承されたメソッドの可視性を下げることは出来ません。」 とのエラーメッセジが出ました。 "public void paint(Graphics g)"とかくと、エラーは消えました。 何故"public"をつける必要があるのでしょうか。 また、クラス自身には、publicをつけない場合には、publicと見なされると本で読みましたが メッソドにはこのようなルールはないのでしょうか。 ======================================= public class Canvas_test extends Canvas { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("Canvas_test"); frame.setBounds(0,0,480,380); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.setLayout(null); JPanel cp = new JPanel(); cp.setLayout(null); frame.add(cp); cp.setBounds(38,20,400,300); Canvas canvas = new Canvas_test(); cp.add(canvas); canvas.setBounds(0,0,400,300); frame.setVisible(true); } void paint(Graphics g) { g.drawString("aaaa",40,40); } } ========================================
- ベストアンサー
- Java
- ウィンドウを初期位置に戻したい!
初めて質問します。 表題についていろいろと検索を掛けてみたのですが解決策は見当たりませんでした。。。 1)ウィンドウの大きさを指定したサイズで固定させる [shift]を押しながらウィンドウ右上の×ボタンをクリックして閉じる (例:InternetExplorer を毎回最大サイズで表示したいとき) 2)ウィンドウを好きな場所へ移動させる ウィンドウをアクティブにしたうえで a.ウィンドウが画面上に見えるとき →タイトルバーを掴んでドラッグ&ドロップ b.ウィンドウが画面上に見えないとき →[Alt]+[space]を入力したのち[M]を押す →任意のカーソルキー(↑↓←→)を1回押す →タイトルバーの中央を掴んだ状態になるので ウィンドウが見えるようにマウスを動かしたあとクリック →上記a.に続く というのが調べた結果です。しかし、自分で移動させたあとWindowsの機能によりウィンドウが位置記憶されてしまい、上記2)a.の方法でなんとなく初期位置に移動させることはできても、まったくの初期位置に戻せません。 噛み砕いて言うと、アプリケーション初回立上げ時はウィンドウがしっかり画面中央に表示されていたのに自分で移動させたため毎回その位置で開かれてしまう、けれど初回立上げ時のようにキッチリ画面中央に表示させてスッキリしたい、というわがままな不満です。 これを解決する方法がありましたら是非教えてください。 よろしくお願いします。m(_ _)m
- ベストアンサー
- Windows 7
- JFrameクラスの挙動に対する推察と質問
JFrameクラスの挙動に対する推察と質問 現在、プログラムでJFrameクラスを使って,Windowを表示させるアプリをつくっているのですが、repaintがうまく動作しません。 コードで説明させていただきますと、 public class Main{ public static void main(String[] args){ Drow drow ; drow = new Drow(); drow.createFrame(); drow.repaint();//画面は更新されない } } public class Drow extends JPanel{ JFrame frame; static Image jpg; static int x; static int y; public void createFrame() { frame = new JFrame(); Drow app = new Drow(); frame.getContentPane().add(app); frame.getContentPane().add( new Drow() ); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setTitle("タイトル"); frame.setVisible(true); } public void paintComponent(Graphics g){ super.paintComponent(g); g.drawOval(x, y, 80, 80); } } このソースのMain文でrepaintを実行させているのですが、画面は更新されません。 このエラーについて自分なりに原因を推察した所、JFrameは自分で自分のクラスのインスタンスを作成しているからではないかと考えました。 なので私がrepaintを実行しても、それは私の作ったdrowインスタンスのpaintComponentが実行されているだけで、JFrameが自動でつくったインスタンスの方には影響がないのだと推察しました。 ここで質問なのですが、私の推察はあっているでしょうか? また、このようなrepaintをMain文で実行したい場合はどのようにしたらよいのでしょうか? お返事お待ちしております。
- ベストアンサー
- Java
お礼
回答ありがとうございます。 実際に知りたいのは、マウスで移動された後のウィンドウの位置(Point)だったのですが、とりあえず回答通りにやってみます。