実現したいこと
mainメソッドを読み取って、ボタンを表示させたいです。
(ボタンを押下した後の動作は、別のクラスファイルに記述しています。)
発生している問題・分からないこと
Eclipseを使っています。
mainメソッドが先頭に来ているのにもかかわらず、mainメソッドが見つからないと言ってきます。
ほかの方の投稿やほかのサイトも見ましたが、私の質問のパターンと異なっていてわかりませんでした。
すみませんが、ご教授いただければ幸いです。
★比較対象★ ソースコード2
通常使っている問題のないコードです。
ここではコンストラクタを使っていますが、ボタンは起動します。
エラーメッセージ
error
1エラー: メイン・メソッドがクラスcompare_file_test.startButtontestで見つかりません。次のようにメイン・メソッドを定義してください。 2 public static void main(String[] args) 3またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要があります
該当のソースコード
Java
1//修正したいコード2package Create_DigimonMsc;3 4import java.awt.BorderLayout;5import java.awt.Color;6import java.awt.Container;7import java.awt.Dimension;8import java.text.SimpleDateFormat;9import java.util.Calendar;10import java.util.Date;11 12import javax.swing.JButton;13import javax.swing.JFrame;14import javax.swing.JPanel;15 16public class startButtontest extends JFrame{17 public static void main(String args[]){18 startButtontest start_frame = new startButtontest("デジモンミュージック");19 start_frame.setVisible(true);20 }21 22 startButtontest(String title){23 Date date = new Date();24 Calendar cal = Calendar.getInstance(); 25 int hour = cal.get(Calendar.HOUR_OF_DAY);26 SimpleDateFormat dateForm_Day = new SimpleDateFormat("yyyyMMdd");27 28 //日付29 String stringToday = dateForm_Day.format(date);30 int integerToday = Integer.valueOf(stringToday);31 32 setTitle(title);33 setBounds(100, 100, 600, 400);34 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);35 36 //顧客ボタン37 JButton button_btf = new JButton("Butter-Fly");38 button_btf.setPreferredSize(new Dimension(100, 50));39 JButton button_bvh = new JButton("Brave Heart");40 button_bvh.setPreferredSize(new Dimension(100, 50));41 JButton button_tbd = new JButton("The Biggest Dreamer");42 button_tbd.setPreferredSize(new Dimension(100, 50));43 44 //閉じるボタン45 JButton exitButton = new JButton("✕");46 exitButton.setPreferredSize(new Dimension(50, 30));47 48 if((hour >= 15)&&(hour<=18)) {49 JPanel button_panel_Dgmmsc = new JPanel();50 button_panel_Dgmmsc.setBackground(Color.ORANGE);51 button_panel_Dgmmsc.add(button_btf);52 button_panel_Dgmmsc.add(button_bvh);53 button_panel_Dgmmsc.add(button_tbd);54 Container contentPanel_Dgmmsc = getContentPane();55 contentPanel_Dgmmsc.add(button_panel_Dgmmsc, BorderLayout.CENTER);56 }
Java
1//通常使っている問題のないコード(参考)2package Create_slamdunkMsc;3 4import java.awt.BorderLayout;5import java.awt.Color;6import java.awt.Container;7import java.awt.Dimension;8import java.awt.FlowLayout;9import java.awt.event.ActionEvent;10import java.awt.event.ActionListener;11import java.io.File;12import java.text.SimpleDateFormat;13import java.util.Calendar;14import java.util.Date;15 16import javax.swing.JButton;17import javax.swing.JFrame;18import javax.swing.JOptionPane;19import javax.swing.JPanel;20 21public class StartButton extends JFrame{22 public static void main(String args[]){23 StartButton start_frame = new StartButton("スラムダンクミュージック");24 start_frame.setVisible(true);25 }26 27 StartButton(String title){28 Date date = new Date();29 Calendar cal = Calendar.getInstance(); 30 int hour = cal.get(Calendar.HOUR_OF_DAY);31 SimpleDateFormat dateForm_Day = new SimpleDateFormat("yyyyMMdd");32 33 //日付34 String stringToday = dateForm_Day.format(date);35 int integerToday = Integer.valueOf(stringToday);36 37 setTitle(title);38 setBounds(100, 100, 600, 400);39 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);40 41 //顧客ボタン42 JButton button_kss = new JButton("君が好きだと叫びたい");43 button_kss.setPreferredSize(new Dimension(100, 50));44 JButton button_adm = new JButton("あなただけ見つめてる");45 button_adm.setPreferredSize(new Dimension(100, 50));46 JButton button_dzk = new JButton("第ゼロ感");47 button_dzk.setPreferredSize(new Dimension(100, 50));48 49 //閉じるボタン50 JButton exitButton = new JButton("✕");51 exitButton.setPreferredSize(new Dimension(50, 30));52 53 //朝作業顧客54 if ((hour >= 7)&&(hour<=11)) {55 JPanel button_panel_SlamdMsc = new JPanel();56 button_panel_SlamdMsc.setBackground(Color.GREEN);57 button_panel_SlamdMsc.add(button_kss);58 button_panel_SlamdMsc.add(button_adm);59 button_panel_SlamdMsc.add(button_dzk);60 Container contentPanel_SlamdMsc = getContentPane();61 contentPanel_SlamdMsc.add(button_panel_SlamdMsc, BorderLayout.CENTER);62 }63 64 //閉じるボタンの位置65 JPanel button_panel_EXIT = new JPanel();66 FlowLayout layout = new FlowLayout();67 layout.setAlignment(FlowLayout.RIGHT);68 button_panel_EXIT.setBackground(Color.WHITE);69 button_panel_EXIT.add(exitButton);70 button_panel_EXIT.add(convert);71 Container contentPanel_EXIT = getContentPane();72 contentPanel_EXIT.add(button_panel_EXIT, BorderLayout.PAGE_END);73 74 //supportTime N: Night/D: Day/A: Night&Day/E: EOD75 //第ゼロ感76 button_dzk.addActionListener(new ActionListener() {77 @Override78 public void actionPerformed(ActionEvent e) {79 //別クラスのメソッドへ80 }81 });82 83 //閉じるボタン84 exitButton.addActionListener(new ActionListener() {85 @Override86 public void actionPerformed(ActionEvent e) {87 System.exit(0); 88 }89 });90 }91}92
試したこと・調べたこと
上記の詳細・結果
対象ソースコードはソースコード2 を基に作成しました。
teratailで「メインメソッドが見つからない」と同様の質問がありましたが、
mainメソッドが不足している、mainメソッドが先頭にないなど上記のコードの事象と合致しないため、
改めて記述しました。
私の解釈違いなら、別の方と合致している部分や表現を具体的に教えて頂けると幸いです。
補足
・Eclipse 「実行の構成」ではCreate_DigimonMsc.startButtontestを指定しています。
・java 17 使用 (ソースコード 1 および 2)
・Windows 11 Pro 使用
よろしくお願いします。

0 コメント