質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

0回答

1988閲覧

Swing ボタン押下でパネルの表示を変更したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

1クリップ

投稿2017/11/26 06:08

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

###発生している問題・エラーメッセージ
SETボタンを押下したら、日付ラベルを入力フィールドに入力した日付にしたいが、
表示が変更されない。

###該当のソースコード

Java

1class JFrameSample extends JFrame { 2 public static void main(String[] args) { 3 JFrameSample JFra = new JFrameSample(); 4 5 //JFrame設定 6 JFra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 7 JFra.setSize(600, 600); 8 JFra.setLocationRelativeTo(null); 9 JFra.setVisible(true); 10 } 11 12 JFrameSample() { 13 14 JPanel DispDate = new JPanel(); 15 DispDate.setLayout(new BorderLayout()); 16 CalApp CalApp = new CalApp(); 17 DispDate.add(CalApp, BorderLayout.CENTER); 18 19 JPanel DispCal = new JPanel(); 20 DispCal.setLayout(new BorderLayout()); 21 CalApp2 CalApp2 = new CalApp2(); 22 DispCal.add(CalApp2, BorderLayout.CENTER); 23 24 JPanel Cont = new JPanel(); 25 Cont.setLayout(new CardLayout()); 26 Cont.add(DispDate, "DispDate"); 27 Cont.add(DispCal, "DispCal"); 28 29 30 31 BtnPanel BtnPanel = new BtnPanel(); 32 getContentPane().add(BtnPanel, BorderLayout.NORTH); 33 getContentPane().add(Cont, BorderLayout.CENTER); 34 35 } 36} 37class BtnPanel extends JPanel implements ActionListener { 38 Locale locale = new Locale("ja", "JP", "JP"); 39 Calendar cal = Calendar.getInstance(locale); 40 41 JTextField EntDate; 42 JButton SET; 43 JButton Daybtn; 44 JButton Monthbtn; 45 46 String strYear; 47 String strWaYear; 48 String strMonth; 49 String strDay; 50 String strWeek; 51 52 BtnPanel() { 53 54 //ラベル、ボタンの設定 55 EntDate = new JTextField(12); 56 EntDate.setFont(new Font("MS ゴシック", Font.BOLD, 20)); 57 SET = new JButton("SET"); 58 SET.setFont(new Font("MS ゴシック", Font.BOLD, 20)); 59 SET.setActionCommand("set"); 60 SET.addActionListener(this); 61 Daybtn = new JButton("日"); 62 Daybtn.setFont(new Font("MS ゴシック", Font.BOLD, 20)); 63 Daybtn.addActionListener(this); 64 Daybtn.setActionCommand("DispDate"); 65 Monthbtn = new JButton("月"); 66 Monthbtn.setFont(new Font("MS ゴシック", Font.BOLD, 20)); 67 Monthbtn.addActionListener(this); 68 Monthbtn.setActionCommand("DispCal"); 69 70 strYear = calYear(cal); 71 String ToCalAppYear = strYear; 72 strWaYear = calWayear(cal); 73 String ToCalAppWaYear = strWaYear; 74 strMonth = calMonth(cal); 75 String ToCalAppMonth = strMonth; 76 strDay = calDay(cal); 77 String ToCalAppDay = strDay; 78 strWeek = calWeek(cal); 79 String ToCalAppWeek = strWeek; 80 81 82 //配置 83 //ボタン 84 JPanel btnP = new JPanel(); 85 btnP.setLayout(new FlowLayout()); 86 btnP.add(EntDate); 87 btnP.add(SET); 88 btnP.add(Daybtn); 89 btnP.add(Monthbtn); 90 91 this.add(btnP); 92 } 93 94 public void actionPerformed(ActionEvent e){ 95 String cmd = e.getActionCommand(); 96 if (cmd.equals("set")) { 97 String strDate = EntDate.getText();//yyyy/MM/dd 98 Calendar calDate =    parseStrToCal(strDate);//Calendar型に 99 strYear = calYear(calDate);//yyyy年に 100 strWaYear = calWayear(calDate);//(平成yy年)に 101 strDay = calDay(calDate);//MM月に 102 strMonth = calMonth(calDate);//dd日に 103 strWeek = calWeek(calDate);//(曜日)に 104 105 String strYcut = strYear.substring(0, 3); 106 int intYcut = new Integer(strYcut); 107 String strMcut = strMonth.substring(0, 1); 108 int intMcut = new Integer(strMcut); 109 } else if (cmd.equals("DispDate")) { 110 CardLayout.show(JFrameSample.Cont , cmd); 111 } else if (cmd.equals("DispCal")) { 112 CardLayout.show(JFrameSample.Cont , cmd); 113 } 114 } 115 116 117 118 119 public static Calendar parseStrToCal(String str){ 120 Calendar calDate = new GregorianCalendar(); 121 if(str == null) { 122 calDate = null; 123 } else { 124 try { 125 calDate.setTime(DateFormat.getDateInstance().parse(str.replace("-", "/"))); 126 } catch (ParseException e) { 127 calDate = null; 128 } 129 } 130 Date date=calDate.getTime(); 131 calDate.setTime(date); 132 return calDate; 133 } 134 135 public static String calYear(Calendar calDate) { 136 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年"); 137 String strYear = sdf1.format(calDate.getTime()); 138 return strYear; 139 } 140 141 public static String calWayear(Calendar calDate) { 142 Locale locale = new Locale("ja", "JP", "JP"); 143 SimpleDateFormat sdf2 = new SimpleDateFormat("'('GGGGyyyy年')'", locale); 144 String strWaYear = sdf2.format(calDate.getTime()); 145 return strWaYear; 146 } 147 148 public static String calMonth(Calendar calDate) { 149 SimpleDateFormat sdf3 = new SimpleDateFormat("MM'月'"); 150 String strMonth = sdf3.format(calDate.getTime()); 151 return strMonth; 152 } 153 154 public static String calDay(Calendar calDate) { 155 SimpleDateFormat sdf4 = new SimpleDateFormat("dd'日'"); 156 String strDay = sdf4.format(calDate.getTime()); 157 return strDay; 158 } 159 160 public static String calWeek(Calendar calDate) { 161 SimpleDateFormat sdf5 = new SimpleDateFormat("'('E')'"); 162 String strWeek = sdf5.format(calDate.getTime()); 163 return strWeek; 164 } 165} 166 167//日付表示用のクラス 168class CalApp extends JPanel { 169 JLabel DisYear; 170 JLabel DisMonth; 171 JLabel DisDay; 172 JLabel DisWeek; 173 174 CalApp() { 175 Locale locale = new Locale("ja", "JP", "JP"); 176 Calendar cal = Calendar.getInstance(locale); 177 BtnPanel BtnPanel = new BtnPanel(); 178 179 DisYear = new JLabel(BtnPanel.strYear + BtnPanel.strWaYear, JLabel.CENTER); 180 DisYear.setFont(new Font("MS ゴシック", Font.PLAIN, 30)); 181 DisMonth = new JLabel(BtnPanel.strMonth, JLabel.CENTER); 182 DisMonth.setFont(new Font("MS ゴシック", Font.PLAIN, 30)); 183 DisDay = new JLabel(BtnPanel.strDay, JLabel.CENTER); 184 DisDay.setFont(new Font("MS ゴシック", Font.PLAIN, 30)); 185 DisWeek = new JLabel(BtnPanel.strWeek, JLabel.CENTER); 186 DisWeek.setFont(new Font("MS ゴシック", Font.PLAIN, 30)); 187 188 //日付 189 JPanel MainP = new JPanel(); 190 MainP.setLayout(new GridLayout(4, 1)); 191 MainP.add(DisYear); 192 MainP.add(DisMonth); 193 MainP.add(DisDay); 194 MainP.add(DisWeek); 195 196 this.add(MainP); 197 } 198 199}

###試したこと
BtnPanelクラスにstrYear等を直接指定しても、変更されないので、CalAppクラスに値を渡せていない?

###補足情報(言語/FW/ツール等のバージョンなど)
Eclipse にて実行。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KSwordOfHaste

2017/11/26 10:38

提示されているソースはそもそもコンパイルエラーになると思います。不足しているクラスがあるだけでなく明らかに文法上許されない記述があります。コンパイルエラーを解決してから質問しなおすか、コンパイルエラーの内容が不明ならエラーメッセージとそれが発せられる問題の行を明示して「コンパイルエラーが出る」という内容の質問にしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問