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

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

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

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Q&A

解決済

1回答

1667閲覧

シンボルが見つかりません

ryu-bamboo

総合スコア9

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

0グッド

0クリップ

投稿2021/05/19 21:59

編集2021/05/19 22:00

質問お願いします。

自分で作成したJavaFXのプロジェクトをgithubから実行したいと思い、コマンドプロンプトで実行しようとしたところ、

application\CalendarMain.java:10: エラー: シンボルを見つけられません
static CalendarController cController;
^
シンボル: クラス CalendarController
場所: クラス CalendarMain

とエラーが出ました。

そこで、CalendarControllerをコンパイルしてみると、chcpでUTF-8に変えたり、-J-Dfile.-encoding=UTF-8 を書いて実行しても文字化けが起こってしまうので、それが原因なのではないかと考えているのですが、上の二つ以外にどうやって文字化けを直せばいいのでしょうか。もし文字化け以外に原因があるのなら何が原因なのでしょうか。教えてほしいです。

環境
windows10
javac 16.0.1
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) Client VM (build 25.291-b10, mixed mode, sharing)

Main

1package application; 2 3import javafx.application.Application; 4import javafx.fxml.FXMLLoader; 5import javafx.scene.Scene; 6import javafx.scene.layout.BorderPane; 7import javafx.stage.Stage; 8 9public class CalendarMain extends Application { 10 static CalendarController cController; 11 12 @Override 13 public void start(Stage primaryStage) throws Exception { 14 FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("CalendarIndividual.fxml")); 15 Scene scene = new Scene((BorderPane)fxmlLoader.load(),700,600); 16 cController = fxmlLoader.getController(); 17 scene.getStylesheets().add(getClass().getResource("Calendar.css").toExternalForm()); 18 primaryStage.setScene(scene); 19 primaryStage.show(); 20 21 } 22 23 public static void main(String[] args) { 24 launch(); 25 } 26 27} 28

これがコンパイルしようとしたMainクラスで、

Controller

1/** 2 * Sample Skeleton for 'CalendarIndividual.fxml' Controller Class 3 */ 4 5package application; 6 7import java.io.IOException; 8import java.net.URL; 9import java.time.LocalDate; 10import java.util.ArrayList; 11import java.util.List; 12import java.util.ResourceBundle; 13 14import javafx.collections.FXCollections; 15import javafx.collections.ObservableList; 16import javafx.fxml.FXML; 17import javafx.fxml.FXMLLoader; 18import javafx.geometry.Pos; 19import javafx.scene.Scene; 20import javafx.scene.control.ColorPicker; 21import javafx.scene.control.ComboBox; 22import javafx.scene.control.DatePicker; 23import javafx.scene.control.Label; 24import javafx.scene.control.Tab; 25import javafx.scene.input.MouseEvent; 26import javafx.scene.layout.AnchorPane; 27import javafx.scene.layout.Background; 28import javafx.scene.layout.BackgroundFill; 29import javafx.scene.layout.BorderPane; 30import javafx.scene.layout.GridPane; 31import javafx.scene.layout.VBox; 32import javafx.scene.paint.Color; 33import javafx.stage.Stage; 34 35public class CalendarController { 36 37 static LocalDate ld; 38 public static ScheduleTableController stController; 39 40 41 @FXML // ResourceBundle that was given to the FXMLLoader 42 private ResourceBundle resources; 43 44 @FXML // URL location of the FXML file that was given to the FXMLLoader 45 private URL location; 46 47 @FXML // fx:id="hiduke" 48 private AnchorPane hiduke; // Value injected by FXMLLoader 49 50 @FXML // fx:id="file" 51 private Tab file; // Value injected by FXMLLoader 52 53 @FXML // fx:id="tools" 54 private AnchorPane tools; // Value injected by FXMLLoader 55 56 @FXML // fx:id="colors" 57 private Tab colors; // Value injected by FXMLLoader 58 59 @FXML // fx:id="calendarTable" 60 private GridPane calendarMatrix; // Value injected by FXMLLoader 61 62 @FXML 63 private Label tuki; 64 65 @FXML 66 private BorderPane calendar; 67 68 @FXML 69 private ComboBox<String> pp; 70 71 @FXML 72 private ColorPicker cp; 73 74 @FXML 75 private DatePicker dp; 76 77 int year; 78 79 int month; 80 81 int date; 82 83 int lastDate; 84 85 CreateDataAndLabel adal = new AddDataAndLabel(); 86 private ScheduleConnection scn = new ScheduleConnection(); 87 private ScheduleDAO dao = new ScheduleDAO(scn.getConnection()); 88 private PackagesDAO pdao = new PackagesDAO(scn.getConnection()); 89 90 @FXML 91 void toDo(MouseEvent event) throws IOException { 92 var fxmlLoader = new FXMLLoader(getClass().getResource("ToDo.fxml")); 93 Scene scene = new Scene((BorderPane)fxmlLoader.load(),400,400); 94 scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 95 Stage primaryStage = new Stage(); 96 primaryStage.setScene(scene); 97 primaryStage.show(); 98 } 99 100 @FXML 101 void edit(MouseEvent event) throws IOException { 102 var fxmlLoader = new FXMLLoader(getClass().getResource("PackageEdit.fxml")); 103 Scene scene = new Scene((BorderPane)fxmlLoader.load(),400,400); 104 scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 105 Stage primaryStage = new Stage(); 106 primaryStage.setScene(scene); 107 primaryStage.show(); 108 } 109 110 @FXML 111 void kettei(MouseEvent event) { 112 calendarMatrix.getChildren().clear(); 113 calendarMatrix.setGridLinesVisible(false); 114 calendarMatrix.setGridLinesVisible(true); 115 List<String> youbi = new ArrayList<String>(7) { 116 { add("日"); 117 add("月"); 118 add("火"); 119 add("水"); 120 add("木"); 121 add("金"); 122 add("土"); 123 124 } 125 }; 126 127 for(int i=0; i<7; i++) { 128 Label label = new Label(youbi.get(i)); 129 label.setAlignment(Pos.CENTER); 130 calendarMatrix.add(label, i,0); 131 label.getStyleClass().add("label_"); 132 label.setPrefWidth(Integer.MAX_VALUE); 133 } 134 135 ld = dp.getValue(); 136 setCalendar(dp.getValue()); 137 } 138 139 @FXML 140 void tekiyou(MouseEvent event) { 141 var pack = pp.getValue(); 142 var col = cp.getValue().toString(); 143 pdao.setColors(pack, col); 144 } 145 146 @FXML 147 void reload(MouseEvent event) { 148 calendarMatrix.getChildren().clear(); 149 calendarMatrix.setGridLinesVisible(false); 150 calendarMatrix.setGridLinesVisible(true); 151 List<String> youbi = new ArrayList<String>(7) { 152 { add("日"); 153 add("月"); 154 add("火"); 155 add("水"); 156 add("木"); 157 add("金"); 158 add("土"); 159 160 } 161 }; 162 163 for(int i=0; i<7; i++) { 164 Label label = new Label(youbi.get(i)); 165 label.setAlignment(Pos.CENTER); 166 calendarMatrix.add(label, i,0); 167 label.getStyleClass().add("label_"); 168 label.setPrefWidth(Integer.MAX_VALUE); 169 } 170 setCalendar(ld); 171 } 172 173 @FXML // This method is called by the FXMLLoader when initialization is complete 174 void initialize() { 175 List<String> youbi = new ArrayList<String>(7) { 176 { add("日"); 177 add("月"); 178 add("火"); 179 add("水"); 180 add("木"); 181 add("金"); 182 add("土"); 183 184 } 185 }; 186 187 for(int i=0; i<7; i++) { 188 Label label = new Label(youbi.get(i)); 189 label.setAlignment(Pos.CENTER); 190 calendarMatrix.add(label, i,0); 191 label.getStyleClass().add("label_"); 192 label.setPrefWidth(Integer.MAX_VALUE); 193 } 194 195 ld = LocalDate.now(); 196 setCalendar(ld); 197 198 ObservableList<String> pItems = FXCollections.observableArrayList(); 199 pItems.addAll(pdao.find()); 200 pp.setItems(pItems); 201 } 202 203 204 @SuppressWarnings("static-access") 205 private void setCalendar(LocalDate ld) { 206 calendarMatrix.setGridLinesVisible(true); 207 year = ld.getYear(); 208 month = ld.getMonthValue(); 209 210 // 月の初めの曜日を求めます。 211 var sYoubi = LocalDate.of(year, month, 1).getDayOfWeek(); 212 213 // 月末の日付を求めます。 214 lastDate = ld.lengthOfMonth(); 215 // カレンダー表を作成します。 216 int row = 1; 217 int column = sYoubi.getValue() ; 218 for (date = 1; date <= lastDate; date++) { 219 VBox vb = new VBox(); 220 Label label = new Label(String.valueOf(date)); 221 label.getStyleClass().add("label_"); 222 label.setAlignment(Pos.TOP_CENTER); 223 label.setPrefWidth(Integer.MAX_VALUE); 224 vb.setOnMouseClicked(event -> { 225 try { 226 int day = Integer.valueOf(label.getText()); 227 this.ld = LocalDate.of(year, month, day); 228 showScheduleTable(); 229 } catch (IOException e) { 230 e.printStackTrace();}});//イベント 231 vb.getChildren().add(label); 232 if(LocalDate.of(year, month, date).equals(ld)) { 233 vb.setStyle("-fx-background-color:#fbf8c4"); 234 } 235 236 var toDoToDay = dao.findByDate(LocalDate.of(year, month, date)); 237 for(var data :toDoToDay) { 238 String colStr = pdao.findColor(data.packageSelectProperty().get()); 239 if(colStr==null) { 240 colStr="#FFFFFF"; 241 } 242 Color col = Color.valueOf(colStr); 243 var toDoLabel = new Label(data.titleProperty().get()); 244 toDoLabel.getStyleClass().add("toDoLabel"); 245 System.out.println(colStr); 246 toDoLabel.setBackground(new Background(new BackgroundFill(col, null, null))); 247 vb.getChildren().add(toDoLabel); 248 } 249 calendarMatrix.add(vb, column, row); 250 if (column == 6) { 251 row++; 252 column = 0; 253 } else { 254 column++; 255 } 256 } 257 258 //月ラベルに値を設定 259 tuki.setText(String.valueOf(month)+"月"); 260 } 261 262 263

これがシンボルが見つけられませんと出たCalendarControllerクラスです。(文字数の関係で一部省略しています。)

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

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

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

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

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

dodox86

2021/05/20 00:45

> そこで、CalendarControllerをコンパイルしてみると、chcpでUTF-8に変えたり、-J-Dfile.-encoding=UTF-8 を書いて実行しても文字化けが起こってしまうので、それが原因なのではないかと考えている 実行時の文字化けとコンパイルエラーの「シンボルを見つけられません」は関係ありません。それぞれ別の問題です。package applicationを指定しているので、コンパイル時のCLASSPATHの指定がされていないか、不適切なのでは?
guest

回答1

0

自己解決

回答ありがとうございました、環境変数を整えるとうまくいきました。

投稿2021/05/21 01:50

ryu-bamboo

総合スコア9

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問