• 締切済み

Java3D テキストフィールドより値を入力(代入)し点を動かしたい

Java3D テキストフィールドより値を入力(代入)し、点を動かしたいのですが、下記のようにソースコードを作成しましたが、入力した値が代入されていないようです。どこをどうしたらいいか教えてください! import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.media.j3d.*; import javax.vecmath.*; import javax.swing.*; import javax.swing.JApplet.*; import javax.swing.JFrame.*; import javax.media.j3d.*; import com.sun.j3d.utils.applet.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; public class J3A7 extends JApplet { JTextField text1=new JTextField("x=",10); JTextField text2=new JTextField("y=",10); JTextField text3=new JTextField("z=",10); double a,b,c; String str1,str2,str3; GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas=new Canvas3D(config); SimpleUniverse universe=new SimpleUniverse(canvas); BranchGroup root=new BranchGroup(); TransformGroup trans1=new TransformGroup(); public J3A7() { setLayout(new BorderLayout()); add(canvas,BorderLayout.CENTER); JPanel panel=new JPanel(); GridLayout g1=new GridLayout(1,3); add(panel,BorderLayout.NORTH); panel.setLayout(g1); panel.add(text1); panel.add(text2); panel.add(text3); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); double x=0.0; double y=0.0; double z=0.0; Point3d[] po1=new Point3d[1]; po1[0]=new Point3d(x,y,z); float[] colorPo1={1.0f,0.0f,0.0f}; PointArray ge1=new PointArray(po1.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge1.setCoordinates(0,po1); ge1.setColors(0,colorPo1); Appearance appp1=new Appearance(); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_READ); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE); PointAttributes ppo1=new PointAttributes(); ppo1.setPointSize(25.0f); ppo1.setPointAntialiasingEnable(true); appp1.setPointAttributes(ppo1); Shape3D gggrid1=new Shape3D(ge1,appp1); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_READ); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); Transform3D tr=new Transform3D(); Vector3d vector=new Vector3d(a,b,c); tr.setTranslation(vector); trans1.setTransform(tr); trans1.addChild(gggrid1); root.addChild(trans1); universe.getViewingPlatform().setNominalViewingTransform(); universe.addBranchGraph(root); text1.addActionListener(new Listener1()); text2.addActionListener(new Listener2()); text3.addActionListener(new Listener3()); } public class Listener1 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==text1){ try{ String str1=text1.getText().trim(); a=Double.valueOf(text1.getText()).doubleValue(); }catch(NumberFormatException ex){} } } } public class Listener2 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==text2){ try{ String str2=text2.getText().trim(); b=Double.valueOf(text2.getText()).doubleValue(); }catch(NumberFormatException ex){} } } } public class Listener3 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==text3){ try{ String str3=text3.getText().trim(); c=Double.valueOf(text3.getText()).doubleValue(); }catch(NumberFormatException ex){} } } } public static void main(String[] args) { JFrame f= new JFrame(); J3A7 frame=new J3A7(); frame.init(); f.getContentPane().add(frame,BorderLayout.CENTER); f.setSize(500,500); f.setTitle("Kuukan: ボタン"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }

  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

質問者の方が今ご質問なさっている内容は「デバッグ」と呼ばれるもので、通常そのソースコードを書きそのコード把握しているプログラマが行う作業です。プログラマはそんな作業に何百と直面し、ひとつの問題に数日かかってしまうこともあります。 残念ながら、それは「質問」ではありません。

参考URL:
http://www.hyuki.com/writing/techask.html
10091014
質問者

お礼

Foxtrot_OWさん、ありがとうございます。 結城さんの参考URL見て質問の仕方勉強します。

関連するQ&A

  • java3D ボタンクリックにより点を動かすには

    java3D ボタンクリックにより点を動かすために下記のようにソースコードを作成しましたが、全く変化なしです。どこをどうすればよいでしょうか? import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.media.j3d.*; import javax.vecmath.*; import javax.swing.*; import javax.swing.JApplet.*; import javax.swing.JFrame.*; import javax.media.j3d.*; import com.sun.j3d.utils.applet.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import com.sun.j3d.utils.picking.*; import com.sun.j3d.utils.picking.behaviors.*; public class J3D82 extends JApplet { JButton b1; GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas=new Canvas3D(config); SimpleUniverse universe=new SimpleUniverse(canvas); BranchGroup root=new BranchGroup(); TransformGroup trans1=new TransformGroup(); Transform3D tr=new Transform3D(); Shape3D gggrid1=null; public J3D82() { setLayout(new BorderLayout()); add(canvas,BorderLayout.CENTER); JPanel panel=new JPanel(); GridLayout g1=new GridLayout(1,1); add(panel,BorderLayout.NORTH); JButton b1=new JButton("移動"); panel.setLayout(g1); panel.add(b1); root.setCapability(BranchGroup.ALLOW_DETACH); root.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); root.addChild(trans1); double x=0.2; double y=0.2; double z=0.2; Point3d[] po1=new Point3d[2]; po1[0]=new Point3d(x,y,z); po1[1]=new Point3d(x,-y,-z); float[] colorPo1={1.0f,0.0f,0.0f, 1.0f,0.0f,0.0f}; PointArray ge1=new PointArray(po1.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge1.setCoordinates(0,po1); ge1.setColors(0,colorPo1); Appearance appp1=new Appearance(); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_READ); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE); PointAttributes ppo1=new PointAttributes(); ppo1.setPointSize(25.0f); ppo1.setPointAntialiasingEnable(true); appp1.setPointAttributes(ppo1); Shape3D gggrid1=new Shape3D(ge1,appp1); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_READ); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); trans1.addChild(gggrid1); universe.getViewingPlatform().setNominalViewingTransform(); universe.addBranchGraph(root); b1.addActionListener(new Listener1()); } public class Listener1 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==b1){ Transform3D tr=new Transform3D(); Vector3d vector=new Vector3d(0.2,0.1,0.0); trans1.getTransform(tr); tr.setTranslation(vector); trans1.setTransform(tr); trans1.addChild(gggrid1); } } } public static void main(String[] args) { JFrame f= new JFrame(); J3D82 frame=new J3D82(); frame.init(); f.getContentPane().add(frame,BorderLayout.CENTER); f.setSize(500,500); f.setTitle("Kuukan:点移動ボタン"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }

    • ベストアンサー
    • Java
  • Java3D 座標の値を入力し点を表示させるには

    Java3D 座標の値を入力することにより点を表示させたいです。そのために下記のように主な部分のソースコードを作成しました。どこをどうすればよいでしょう教えてください! public class Test extends Applet{ boolean isStandalone=false; Canvas3D canvas=null; SimpleUniverse universe=new SimpleUniverse(canvas); BranchGroup scene=createSceneGraph(); BranchGroup root3=new BranchGroup(); TransformGroup trans3=new TransformGroup(); float x; float y; float z; Vector3f pointposition = new Vector3f(0.0f, 0.0f, 0.0f); TuplePanel bgpanel=new TuplePanel(pointposition) public Test(){ this(false); } public Test(final boolean isStandalone){ this.isStandalone = isStandalone; this.setLayout(new BorderLayout()); Panel panel=new Panel(); this.add(panel,BorderLayout.NORTH); bgpanel.addTupleEventListener(new TupleEventListener(){   public void tupleStateChanged(TupleEvent e){ pointposition=e.getVector3f(); Transform3D t3d = new Transform3D(); t3d.setTranslation(pointposition); trans3=new TransformGroup(t3d); Point3f[] po3=new Point3f[1]; po3[0]=new Point3f(pointposition); PointArray ge3=new PointArray(po3.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge3.setCoordinate(0,po3[0]); Appearance appp3=new Appearance(); Shape3D gggrid3=new Shape3D(ge3,appp3); gggrid3.setGeometry(ge3); trans3.addChild(gggrid3); } }); panel.add(bgpanel); Button addbutton = new Button("Add"); addbutton.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e) { universe.getLocale().removeBranchGraph(scene); scene.addChild(trans3); universe.addBranchGraph(scene); } }); panel.add(addbutton); } @Override public void init() { GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); ・・・ BranchGroup scene=createSceneGraph(); universe.addBranchGraph(scene); } private BranchGroup createSceneGraph(){ root3.setCapability(BranchGroup.ALLOW_DETACH); root3.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); trans3.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans3.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); BoundingSphere bounds3 = new BoundingSphere(new Point3d(),100.0); ・・・ double[] vertices3= {0.65,0.00,0.05,//X軸 ・・・ }; float[] colorP3={0.0f,0.0f,0.0f               ・・・}; LineArray eom3=new LineArray(vertices3.length, GeometryArray.COORDINATES|GeometryArray.COLOR_3); eom3.setCoordinates(0,vertices3); eom3.setColors(0,colorP3); LineAttributes attr3=new LineAttributes(); attr3.setLineWidth(3.0f); Appearance p3=new Appearance(); p3.setLineAttributes(attr3); Shape3D rid3=new Shape3D(eom3,p3); rid3.setCapability(Shape3D.ALLOW_GEOMETRY_READ); trans3.addChild(rid3); Point3f[] po3=new Point3f[1]; po3[0]=new Point3f(x,y,z); float[] colorPo3={1.0f,0.0f,0.0f}; final PointArray ge3=new PointArray(po3.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge3.setCoordinate(0,po3[0]); ge3.setColors(0,colorPo3); Appearance appp3=new Appearance(); appp3.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_READ); appp3.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE); PointAttributes ppo3=new PointAttributes(); ppo3.setPointSize(25.0f);      appp3.setPointAttributes(ppo3); Shape3D gggrid3=new Shape3D(ge3,appp3); gggrid3.setCapability(Shape3D.ALLOW_GEOMETRY_READ); gggrid3.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); trans3.addChild(gggrid3); return root3; }

  • Java3Dで三角形を回転させたい

    Java3D初心者です。 三角形を表示しy軸回転をさせて円すいのような形を作りたいのですが、なかなか進みません。 とりあえず三角形をを表示させるプログラムを作り、 それをRotationInterpolatorクラスに従って回転させるプログラムを作りたいのですが、エラーが出てしまいます。 ご指摘お願いします。 三角形プログラム↓ import java.applet.Applet; import java.awt.BorderLayout; import java.awt.event.*; import java.awt.GraphicsConfiguration; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; public class Sample3D3 extends Applet {  public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup();     TransformGroup objTrans = new TransformGroup(); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(objTrans);     Point3d[] vertices = new Point3d[3]; vertices[0] = new Point3d(-0.9, 0.5, 0.0); vertices[1] = new Point3d(-0.9, -0.9, 0.0); vertices[2] = new Point3d(0.0, -0.9,0.0); TriangleArray geometry = new TriangleArray(vertices.length,GeometryArray.COORDINATES);     geometry.setCoordinates(0, vertices);     Shape3D shape = new Shape3D(geometry);     objRoot.addChild(shape);     objRoot.compile();     return objRoot;} public Material material3; public TransformGroup transformGroup4; public Transform3D transform3D4; public Sample3D3() { setLayout(new BorderLayout()); GraphicsConfiguration config =            SimpleUniverse.getPreferredConfiguration();     Canvas3D c = new Canvas3D(config); add("Center", c);     BranchGroup scene = createSceneGraph(); SimpleUniverse u = new SimpleUniverse(c);  u.getViewingPlatform().setNominalViewingTransform();     u.addBranchGraph(scene);} public static void main(String[] args) { new MainFrame(new Sample3D3(), 400, 400); } } 回転プログラム↓ import java.applet.*; import java.awt.*; import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.applet.MainFrame; public class Jikken extends Applet { public Jikken() { Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); BorderLayout borderLayout = new BorderLayout();  this.setLayout( borderLayout);  this.add( canvas3D, BorderLayout.CENTER); SimpleUniverse simpleUniverse = new SimpleUniverse(canvas3D);  simpleUniverse.getViewingPlatform().setNominalViewingTransform(); BranchGroup objRoot = new BranchGroup(); DirectionalLight directionalLight = new DirectionalLight(); TransformGroup transformGroup = new TransformGroup(); Sample3D3 sample3D3 = new Sample3D3(); BoundingSphere boundingSphere = new BoundingSphere(); transformGroup.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE); Alpha alpha = new Alpha(); RotationInterpolator rotationInterpolator = new RotationInterpolator(alpha,transformGroup); rotationInterpolator.setSchedulingBounds(boundingSphere); directionalLight.setInfluencingBounds(boundingSphere); transformGroup.addChild(rotationInterpolator); transformGroup.addChild(sample3D3); objRoot.addChild(transformGroup); objRoot.addChild(directionalLight); simpleUniverse.addBranchGraph(objRoot); } public static void main(String[] argV){ Jikken jikken = new Jikken(); MainFrame mainFrame = new MainFrame(jikken,500,500); } } これで回転プログラムを実行すると、 型 Group のメソッド addChild(Node) は引数 (Sample3D3) に適用できません。という内容のエラーが表示されます。 読みにくくてすみませんがよろしくお願いします。

    • ベストアンサー
    • Java
  • テキストボックスの値が変数に代入できない(1)

    お早うございます。 java初心者です、宜しくお願いします。 下記のような、アプレットのテキストボックスから値をとり 計算結果を表示するプログラムを書いてやりましたが、 値(実数値)がうまく変数に代入されていません。 この原因が分かりません、どこが悪いのか皆様方のご教示宜しくお願いいたします。 文法上のエラーは出ていません、AWTとswingとの混在は理解は出来ていじますが、それとは別の箇所で原因があると思いますが、解決できません、宜しくお願いいたします。 字数制限で二回の投稿となりますが、宜しくお願いいたします。 ================================================== public class WPCulc extends Applet implements ActionListener { Double Wu , Wd , Wul , Wdl = 0.0 ; Double q , Cwu , Cwd = 0.0 ; Double sita = 0.0 ; Double lon = 0.0 ; Double E , Vo = 0.0 ; Double Er2 , Gf = 0.0 ; Double Zb , Zg , arfa = 0.0 ; public void init() { setLayout(null) ; //一番上の文字 Label lb = new Label("Culc WP"); lb.setFont(new Font("SansSerif",Font.BOLD,20)); lb.setBackground(new Color(0xff9999)); Color c = Color.blue; //カラーを指定 lb.setForeground(c); //ラベルの前景色 lb.setBounds(25 , 40 , 250 ,50) ; add(lb); //longth(延長) Label lb_longth = new Label("L"); lb_longth.setFont(new Font("SansSerif",Font.BOLD,20)); lb_longth.setBackground(new Color(0xff9999)); lb_longth.setBounds(40 ,120 , 30 ,30) ; add(lb_longth) ; //θ Label lb_sita = new Label("θ"); lb_sita.setFont(new Font("SansSerif",Font.BOLD,20)); lb_sita.setBackground(new Color(0xff9999)); lb_sita.setBounds(40 ,160 , 30 ,30) ; add(lb_sita); //Zb Label lb_Zb = new Label("Zb"); lb_Zb.setFont(new Font("SansSerif",Font.BOLD,20)); lb_Zb.setBackground(new Color(0xff9999)); lb_Zb.setBounds(40 , 200 , 30 ,30) ; add(lb_Zb); //Zg Label lb_Zg = new Label("Zg"); lb_Zg.setFont(new Font("SansSerif",Font.BOLD,20)); lb_Zg.setBackground(new Color(0xff9999)); lb_Zg.setBounds(40 , 240 , 30 ,30) ; add(lb_Zg); //arufa Label lb_arfa = new Label("α"); lb_arfa.setFont(new Font("SansSerif",Font.BOLD,20)); lb_arfa.setBackground(new Color(0xff9999)); lb_arfa.setBounds(40 , 280 , 30 ,30) ; add(lb_arfa); lb.setBounds(25 , 40 , 250 ,50) ; //Gf Label lb_Gf = new Label("Gf"); lb_Gf.setFont(new Font("SansSerif",Font.BOLD,20)); lb_Gf.setBackground(new Color(0xff9999)); add(lb_Gf); lb_Gf.setBounds(40 , 320 , 30 ,30) ; //Vo Label lb_Vo = new Label("Vo"); lb_Vo.setFont(new Font("SansSerif",Font.BOLD,20)); lb_Vo.setBackground(new Color(0xff9999)); add(lb_Vo); lb_Vo.setBounds(40 , 360 , 30 ,30) ; //Button(InputDataの確認) Button bt = new Button("InputDataの確認"); bt.addActionListener(this); bt.setFont(new Font("SansSerif",Font.BOLD,20)); Color d = new Color(0xff00ff); //カラーを指定 bt.setBackground(d); //ボタンの背景色 bt.setForeground(new Color(0.0f, 0.0f, 0.0f)); //floatで指定 bt.setBounds(60,430,220,40); add(bt); //TextFieldの始まり(Fieldの作成のみとDataの取得) //InputDataの表示(addせず) TextField tf = new TextField("InputData"); Color e = new Color(255,255,255); //カラーを指定 tf.setBackground(e); Color f = new Color(0,255,0); tf.setForeground(f); tf.setBounds(55,130,180,20); // add(tf); JTextField jta00 = new JTextField("");//long JTextField jta0 = new JTextField("");//sita JTextField jta1 = new JTextField("");//Zb JTextField jta2 = new JTextField("");//Zg JTextField jta3 = new JTextField("");//α JTextField jta4 = new JTextField("");//Gf JTextField jta5 = new JTextField("");//Vo try { lon = Double.parseDouble(jta00.getText()) ; sita = Double.parseDouble(jta0.getText()) ; Zb = Double.parseDouble(jta1.getText()) ; Zg = Double.parseDouble(jta2.getText()) ; arfa = Double.parseDouble(jta3.getText()) ; Gf = Double.parseDouble(jta4.getText()) ; Vo = Double.parseDouble(jta5.getText()) ; }

    • ベストアンサー
    • Java
  • テキストフィールドの文字をテキストエリアに表示する

    エラーも例外もないです。 但し今回の内容の"テキストフィールドに打ち込みエンターキーを文字をテキストフィールドに表示" が満たしてないですとりあえずソース乗せます mport java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class MyMemo { public static void main(String[] args) { JFrame Frame = new JFrame("課題"); Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Frame.setSize(500, 500); Frame.setLocationRelativeTo(null); Container contentPane = Frame.getContentPane(); // テキストフィールドのインスタンスを生成 final JTextField text = new JTextField();// テキストエリアのインスタンスを生成 text.addActionListener(new MyActionListener()); Frame.setVisible(true); final JTextArea Area = new JTextArea(5,0); // スクロールペインにテキストエリアを追加 JScrollPane scrollPane = new JScrollPane(Area); // パネルをコンポーネントに配置 contentPane.add(text, BorderLayout.NORTH); contentPane.add(scrollPane, BorderLayout.CENTER); Frame.setVisible(true); } static class MyActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { } } } どう文字をテキストエリアに表示したらいいのかわからなくて質問させていただきました。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 参照されない

    クラスSentenceActionperformedのtext1,textの部分がエラーとなります。クラスは呼ばれています。二つとも参照?されていないのです。 参考になるページをみると同じような書き方しているのに問題ないのでどこが違うのかわかりません。この書き方では参照でなきないのだと思いますが正しい書き方がわかりません。別のクラスにしていく方法でいきたいです。 うまく行けばtextの文字がtext1に表示されます。 よろしくお願いします。 import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JTextArea; import javax.swing.JTextField; public class sample extends javax.swing.JFrame{ public sample() { init(); } private void init() { JTextField text = new JTextField(25); JTextArea text1 = new JTextArea(10,25); Container mainFrame = getContentPane(); mainFrame.setLayout(new FlowLayout()); mainFrame.add(text); mainFrame.add(text1); mainFrame.setBounds(0, 0, 500, 500); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); SentenceActionPerformed aa = new SentenceActionPerformed(); text.addActionListener(aa); } class SentenceActionPerformed implements ActionListener{ public void actionPerformed(ActionEvent evt) { text1.setText(text.getText()); } } public static void main(String args[]) { new sample().setVisible(true); } }

    • ベストアンサー
    • Java
  • Swing自作コンポーネントをadd出来るように、

    JTextFieldやJButtonなどを一つにまとめたコンポーネントを自作し、それをadd()出来るようにしたいです。frame.add(自作のクラスのインスタンス)を可能にしたいです。 調べて、paintComponent()を使えば良いということはわかったのですが、Graphicsのインスタンス(?)に線を描いたり、円を描いたりする方法はわかりましたが、JButtonやJTextFieldなどをGraphicsのインスタンス(?)に追加する方法はわからず、paintComponent()を使うやり方はできませんでした。 paintComponent()も使わずに、自分のできる方法で、組んだものを一応載せます。 import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class MyComponentTest{ public static void main(String[] args){ JFrame frame = new JFrame("タイトル"); frame.setSize(400, 300); frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS)); // 2つのテキストフィールドと一つのボタンを4つ追加する frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.setVisible(true); } } //2つのテキストフィールドと一つのボタンを一つの部品にしたい class TwoTextFieldsAndOneButton{ JTextField textField1 = new JTextField("テキストフィールド1"); JTextField textField2 = new JTextField("テキストフィールド2"); JButton button = new JButton("ボタン"); // こんなメソッドを使わずに、再現したい JPanel getContent(){ JPanel panel = new JPanel(); panel.add(textField1); panel.add(textField2); panel.add(button); return panel; } }

    • ベストアンサー
    • Java
  • java3Dについておききします

    javaのバージョンは1.6.0_27です 困ってる内容は現在javaSDをEclipse3.5で使おうとjavaSDをインストールしてネットで調べながらやってますがうまくいいかないです いまどうなってるか画像をみて欲しいです 上手く言ってない理由はこのようなエラーが返ってなかなかすすみません 説明 リソース パス ロケーション 型 アクセス制限: 型 BranchGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 31 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 SimpleUniverse は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dutils.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 28 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 Transform3D は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 37 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 TransformGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 34 Java 問題 //****************************************************************************** //Java3D とりあえず動作確認するプログラム //カラーキューブ回転 //****************************************************************************** //============================================================================== //インポート・ファイル import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; import java.util.Timer; public class Java3D_first_test { //============================================================================= //クラスのフィールド //仮想空間全体 SimpleUniverse universe; //オブジェクトのためのグループ BranchGroup group1; //オブジェクトの座標変換のためのグループ TransformGroup transform_group1; //オブジェクトの座標変換のためのクラス Transform3D transform1; //回転角を管理 float rot_value; //============================================================================= //メイン・メソッド public static void main(String[] args) { Java3D_first_test test = new Java3D_first_test(); } } javaSDのライブラリはインポート文はエラー返ってないですが・・・ お優しくお願いします。なにが原因かわからずじまいな状態です

    • ベストアンサー
    • Java
  • javaプログラムのファイル書き出しについて

    以前はファイルに書き出すためのパスが違っており、書き出せずにいるところをアドバイスいただきありがとうございます。 プロフィールを書くプログラムを組んでいます。 打ち込んだプロフィールを画面に表示すると同時に、ファイルにも結果を書き出したいのですが、書き出せれる内容が、打ち込んだ内容ではなく、 プルグラムの書き込み欄に例として表示される用に書いている、 下の内容が書き出されてしまいます。 「name = new JTextField("名前", 20); birth = new JTextField("生年月日", 20); address = new JTextField("住所", 40); mail = new JTextField("mail", 40); number= new JTextField("電話番号", 30);」 テキストファイルに書き出される内容です。 「名前:名前 生年月日:生年月日 住所:住所 mail:mail 電話:電話番号」 打ち込んだ内容がテキストファイルに書き出すにはどうすればいいでしょうか? 下がソースコードです。 よろしくお願いします。 import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; class Sample extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; static JTextField name; static JTextField birth; static JTextField address; static JTextField mail; static JTextField number; JLabel label; public static void main(String args[]){ Sample frame = new Sample("profile"); frame.setVisible(true); } Sample(String title){ setTitle(title); setBounds(100, 100, 500, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); name = new JTextField("名前", 20); birth = new JTextField("生年月日", 20); address = new JTextField("住所", 40); mail = new JTextField("mail", 40); number= new JTextField("電話番号", 30); JButton button = new JButton("取得"); button.addActionListener(this); label = new JLabel(); p.add(name); p.add(birth); p.add(address); p.add(mail); p.add(number); p.add(button); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); contentPane.add(label, BorderLayout.SOUTH); try{ File file = new File("C:\\Users\\mattun\\Documents\\sample.txt"); if (checkBeforeWritefile(file)){ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); //ファイルに書き込む内容 pw.println("名前:"+name.getText()); pw.println("生年月日:"+birth.getText()); pw.println("住所:"+address.getText()); pw.println("mail:"+mail.getText()); pw.println("電話:"+number.getText()); pw.close();//ファイルを閉じる }else{ System.out.println("ファイルに書き込めません");//書き込み出来ない場合 } }catch(IOException e){ System.out.println(e); } } public void actionPerformed(ActionEvent e){ label.setText("<html>"+"名前:"+name.getText()+"<br>"+"生年月日:"+birth.getText()+"<br>"+"住所:"+address.getText()+ "<br>"+"mail:"+mail.getText()+"<br>"+"電話:"+number.getText()+"</html>"); } private static boolean checkBeforeWritefile(File file){ if (file.exists()){ if (file.isFile() && file.canWrite()){ return true; } } return false; } }

    • ベストアンサー
    • Java
  • Javaのプログラミングで困っています。

    プロフィールを打ち込んで表示するプログラムを書いていました。 プロフィールの打ち込み後に画面に表示するのと同時にテキストファイルに書き出したいと思ったため、書いてみましたが、ファイルに書き込めず知識不足で困っています。 是非教えていただきたく書き込みをさせていただきました。 自分で書いたコードは書きになります。 import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; class Sample extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; static JTextField name; static JTextField birth; static JTextField address; static JTextField mail; static JTextField number; JLabel label; public static void main(String args[]){ Sample frame = new Sample("profile"); frame.setVisible(true); } Sample(String title){ setTitle(title); setBounds(100, 100, 500, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); name = new JTextField("名前", 20); birth = new JTextField("生年月日", 20); address = new JTextField("住所", 40); mail = new JTextField("mail", 40); number= new JTextField("電話番号", 30); JButton button = new JButton("取得"); button.addActionListener(this); label = new JLabel(); p.add(name); p.add(birth); p.add(address); p.add(mail); p.add(number); p.add(button); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); contentPane.add(label, BorderLayout.SOUTH); try{ File file = new File("C:Users\\mattun\\Documents\\sample.txt"); if (checkBeforeWritefile(file)){ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); //ファイルに書き込む内容 pw.println("名前:"+name.getText()); pw.println("生年月日:"+birth.getText()); pw.println("住所:"+address.getText()); pw.println("mail:"+mail.getText()); pw.println("電話:"+number.getText()); pw.close();//ファイルを閉じる }else{ System.out.println("ファイルに書き込めません");//書き込み出来ない場合 } }catch(IOException e){ System.out.println(e); } } public void actionPerformed(ActionEvent e){ label.setText("<html>"+"名前:"+name.getText()+"<br>"+"生年月日:"+birth.getText()+"<br>"+"住所:"+address.getText()+ "<br>"+"mail:"+mail.getText()+"<br>"+"電話:"+number.getText()+"</html>"); } private static boolean checkBeforeWritefile(File file){ if (file.exists()){ if (file.isFile() && file.canWrite()){ return true; } } return false; } }

    • ベストアンサー
    • Java

専門家に質問してみよう