- 締切済み
Java Applet
Java Appletを今やっています。 初心者なので何も分からないので質問文で変な部分があれば指摘してください。 画像処理のプログラムをしています。 そこで、コントロールパネルに choice_Trace.addItem("無"); choice_Trace.addItem("有"); で、有無を選択して、有のときにポップアップメニューイベント で画像の変化の軌跡を表示させるようにしたいのですが。 もしよろしければ、プログラムを教えてくださいませんか? 時間がかかり、面倒かも知れませんが、どなたかおねがいします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
以下のように、各シーンごとに画面をクリアしてから画像を書き出すと軌跡が残らず、 各シーンの画像を完全には消さずに残すようにすれば軌跡が残るようになります。 (右クリックのポップアップメニューで表示方法を変更します) -----アプレット----- import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.util.*; public class kiseki extends Applet { BufferedImage OSI; Graphics G; Color BollColor, MaskColor; MenuItem M1; PopupMenu PM; int X=0, Y=0, VX=5, VY=5; boolean F; void ShowPopup(int x, int y) { PM.show(this, x, y); }; public void init() { OSI = new BufferedImage(160,120,BufferedImage.TYPE_INT_ARGB); G = OSI.getGraphics(); BollColor = new Color(0xFFFF0000,true); MaskColor = new Color(0x20FFFFFF,true); F = false; PM = new PopupMenu(); M1 = new MenuItem("Change Print Style"); M1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { F = !F; }; }); PM.add(M1); add(PM); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON3) ShowPopup(e.getX(), e.getY()); }; }); }; Timer MT; public void start() { MT = new Timer(); MT.schedule(new MoveTask(), 1000, 100); }; public void paint(Graphics g) { g.drawImage(OSI,0,0,this); }; public void update(Graphics g) { paint(g); }; class MoveTask extends TimerTask { public void run () { if (F) G.setColor(MaskColor); else G.setColor(Color.WHITE); G.fillRect(0,0,160,120); G.setColor(BollColor); G.fillOval(X,Y,10,10); X+=VX; if (X>=150) VX=-5; if (X<=0) VX=5; Y+=VY; if (Y>=110) VY=-5; if (Y<=0) VY=5; repaint(); }; }; } -----ページHTML----- <html> <head><title>kiseki</title></head> <body> <applet codebase="." code="kiseki" width="160" height="120"></applet> </body> </html>
- Foxtrot_OW
- ベストアンサー率38% (19/49)
>質問文で変な部分があれば指摘してください。 ・「画像の変化の軌跡」がどのようなことを指しているのでしょうか? ・「画像の変化の軌跡」をどこにどのような形式で表示するのでしょうか? ・タイトルが質問の内容を要約していないので不適切です。 ・addItem()はどのコンポーネントに対する呼び出しでしょうか?java.awt.Choice?javax.swing.JComboBox?java.awt.List? ・コントロールパネルとはjava.awt.Panelやjavax.swing.JPanelのことでしょうか? ・ポップアップメニューはどのようなメニュー項目があるのでしょうか?どのメニュー項目の選択の際にその表示を行うのでしょうか? ・開発環境は?Javaのバージョンは? ・「プログラムを教える」とは具体的にはどのような要求でしょうか。プログラミング技術について一から教えて欲しいということでしょうか?完動するソースコードを示して欲しいということでしょうか? ・一番重要な点なのですが、いったいどこがわからなくてつまづいているのでしょうか????