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

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

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

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

Q&A

解決済

1回答

4267閲覧

java public 宣言 エラー

andersong

総合スコア7

Java

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

0グッド

0クリップ

投稿2020/08/06 16:17

javaでカレンダーを作りたいのですがエラーが出てしまいました。
エラーの内容は
CalendarSystem.java:10: エラー: クラス ControlPanelはpublicであり、ファイルControlPanel.javaで宣言する必要があります
public class ControlPanel extends JPanel{
^
CalendarSystem.java:43: エラー: クラス WeekPanelはpublicであり、ファイルWeekPanel.javaで宣言する必要があります
public class WeekPanel extends JPanel{
^
CalendarSystem.java:61: エラー: クラス CalendarPanelはpublicであり、ファイルCalendarPanel.javaで宣言する必要があります
public class CalendarPanel extends JPanel{
^
CalendarSystem.java:98: エラー: クラス CalendarCellはpublicであり、ファイルCalendarCell.javaで宣言する必要があります
public class CalendarCell extends JPanel{
です。

どうすればよいでしょうか。

ソースコードは

import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class ControlPanel extends JPanel{
private CalendarPanel cp;

public ControlPanel(CalendarPanel cp,int y,int m){

String[] year={ "2016年","2017年","2018年","2019年","2020年", "2021年","2022年","2023年","2024年","2025年" }; String[] month={ "1月","2月","3月","4月","5月","6月", "7月","8月","9月","10月","11月","12月" };

this.cp=cp;
add(new JButton("<<"));
add(new JBuuton("<"));
JComboBox cb;
cb=new JComboBox<String>(year);
cb.setSelectedItem(y+"年");
add(cb);
cb=new JComboBox<String>(month);
cb.setSelectedItem(m+"月");
add(cb);
add(new JButton(">"));
add(new JButton(">>"));
cp.setYearMonth(y,m);

}
}

public class WeekPanel extends JPanel{

public WeekPanel(){
String[] week={ "日","月","火","水","木","金","土" };
setLayout (new GridLayout(1,7,1,1));
for(String s:week){
JLabel l=new JLabel(s,SwingConstructs.CENTER);
if(s.equals("日")) l.setForeground(Color.red);
if(s.equals("土")) l.setForeground(Color.blue);
add(l);

}
}
}

public class CalendarPanel extends JPanel{
private CalendarCell[][] cc;

public CalendarPanel(){
setLayout(new GridLayout(6,7,1,1));
cc=new CalendarCell[6][7];
for(int i=0;i<6;i++)
for(int j=0;j<7;j++)
add(cc[i][j]=new CalendarCell());

}

public void setYearMonth(int y,int m){
Calendar cal=Calendar.getInstance();
cal.set(y,m-1,1);
int dow=cal.get(Calendar.DAY_OF_WEEK);
int d_max=cal.getActualMaximum(Calendar.DATE);
int d=1;
for(int i=0;i<6;i++){
for(int j=0;j<7;j++){
if(i==0 && Calendar.SUNDAY+j<dow)
continue;
if(d>d_max) continue;
cc[i][j].setDate(y,m,d);
d++;
}
}

}
}

public class CalendarCell extends JPanel{
private Calendar date;

public CalendarCell(){
setBackground(Color.white);
setLayout(new FlowLayout(FlowLayout.LEFT));

}

public void setDate(int y,int m,int d){
date=Calendar.getInstance();
date.set(y,m-1,d);
int dow=date.get(Calendar.DAY_OF_WEEK);
JLabel l=new JLabel(""+d);
if(dow==Calendar.SUNDAY) l.setForeground(Color.red);
if(dow==Calendar.SATURDAY) l.setForeground(Color.blue);
add(l);

}
}

public class CalendarSystem extends JFrame implements WindowListener{

public CalendarSystem(){
super("Calendar System SP2");
setSize(600,500);
setLocation(100,100);
addWindowListener(this);
WeekPanel wp=new WeekPanel();
CalendarPanel cp=new CalendarPanel();
JPanel p=new JPanel();
p.setLayout(new BorderLayout());
p.add(wp,BorderLayout.NORTH);
p.add(cp);
add(p);
add(new ControlPanel(cp,2020,6),BoderLayout.NORTH);

}

public void windowOpened(WindowEvent ev){}
public void windowClosing(WindowEvent ev){ dispose(); }
public void windowClosed(WindowEvent ev){}
public void windowActivated(WindowEvent ev){}
public void windowDeactivated(WindowEvent ev){}
public void windowIconified(WindowEvent ev){}
public void windowDeiconified(WindowEvent ev){}

public static void main(String[] args){
(new CalendarSystem()).setVisible(true);

}

}
です。
回答よろしくおねがいします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

コードを記述するファイル名と、そのファイル内のpublicクラスの名前は一致している必要があります。
したがって、1つのファイルに複数のpublicクラスを宣言することはできませんし、そのpublicクラスの名前はファイル名と同じものでなくてはいけません。

投稿2020/08/06 16:21

swordone

総合スコア20669

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

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

andersong

2020/08/06 16:56

ありがとうございました。 解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問