カスタマイズ性をもったスケジューラの作成方法について

このQ&Aのポイント
  • 卒業研究でJavaアプリケーションで「カスタマイズ性をもったスケジューラ」を作ろうと思っているですが、ユーザーが入力することで、アプリケーションにクラスを生成することは出来ないか悩んでいます。
  • ユーザーが一日のスケジュールを時間毎に入力できる新しいスケジュールの入力方式(ひな形)を作ることで、使いやすいアプリケーションにしたいと考えています。
  • Javaの基本を学んだ初心者ですが、クラスを作成する方法についてアドバイスや役に立ちそうなサイトを教えていただけないでしょうか。
回答を見る
  • ベストアンサー

カスタマイズ性をもったスケジューラを作ろうと思っているのですが悩んでいます

初めて質問させていただきます。 卒業研究でJavaアプリケーションで「カスタマイズ性をもったスケジューラ」を作ろうと思っているのですが、ユーザーが入力することで、アプリケーションにクラスを生成することは出来ないものかと悩んでいます。 例をひとつ挙げさせてもらいますと、属性として「日付」と「内容」をもった「スケジュール」クラスがあったとします。しかしこれでは一日のスケジュールでは内容と日付ひとつずつしか扱えないということで、ユーザーが一日のスケジュールを時間毎に入力出来、属性も「日付」「期限」「内容」が扱えることの出来る新しいスケジュールの入力方式(ひな形)を作ることで本人が使いやすいアプリケーションにしたいと考えています。 私は講義でJava言語の基本を学んで、ソフト開発は初めてです。今はこの質問をはじめとする諸問題で仕様を決める段階でつまっています。データベースはMySQLを使っていこうと考えています。 長くなりましたが、ユーザーが新しいクラスを作ることのできるような方法についてご存じの方がいましたらアドバイスや役に立ちそうなサイトをよろしくお願いします。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • pinknoise
  • ベストアンサー率100% (2/2)
回答No.1

スケジューラですか。 結構やりがいがあって楽しそうな開発ですね。 がんばってください。 JavaとMySQLでやるってことはWebアプリケーションかな? それともデスクトップアプリ? それともWeb + クライアントアプリかな? ユーザーが新しいクラスを作ることのできるような方法はないことはないです。 「リフレクション」、「OSコマンド」とJavaを検索してもらえれば、完全に不可能ではないことがわかると思います。 ですが、これは結構複雑なコードになることが予想されます。 かつかなりトリッキーなやり方になります。 挙げてもらっているカスタマイズ性の例を読むとクラスのフィールドに 日付、期限、内容、開始時間、終了時間とかを追加しておくことで、可能になると思います。 もし私がカスタマイズ性をもったスケジューラを作成するなら以下のような感じでしょうか。 まずスケジューラに必要になるかもしれない項目(開始時間、終了時間、場所、相手など)のフィールドを全てクラスに準備しておきます。 さらに特に名前の決まっていない、文字列を格納できる予備のフィールドを2,3個作ります。 java.util.Mapなどのクラスを利用していくらでも入るようにしておいても良いでしょう。(Map知らなかったら調べてね。) でユーザ設定画面から表示する項目を選択できるようにします。チェックボックスとかでチェックを入れたらその項目を表示するといった感じです。 Mapや予備フィールドはユーザカスタムフィールドとしてユーザが自由に文字列を入れられるようにします。 設定をセーブすると設定ファイルを作成します(Webアプリケーションだったら、ユーザのテーブルに設定を保存します)。 わからないところがあったら聞いてください。もう少しわかりやすく書くようにするので。

windows87
質問者

お礼

さっそくの回答ありがとうございます。 アプリケーションの種類はデスクトップアプリで、スケジュールをユーザーに伝える際に携帯電話にメールを送るようにしたいと考えています。 予備フィールドを用意しておくことは前々から考えてはいましたが、ユーザーに選ばせる際かなり多くのデータ項目からいくつかを選択するという形になりそうだったのと、スケジュールを入力するたびにチェックボックスなどの設定をいじらないといけないことに使いにくさを感じたのでためらいました。 なので例えば学習用のフィールドをまとめた「学習用スケジュール」や、出張の予定を扱うためにユーザーが必要と思ったフィールドをまとめ「出張予定」というひな形をユーザーが作成する(ユーザーによるクラス作成)ことで、「一度設定したら呼び出せば使える」としたかったわけです。 今回質問させていただいたことで不可能ではないと感じたので、ひとまず「リフレクション」や「OSコマンド」、「java.util.Map」など自分なりに調べて、わからないことがあったらまた聞かせていただきたいと思います。 丁寧な回答ありがとうございました。

関連するQ&A

  • ショートカットキーをカスタマイズ可能にするには(VC2005)

    自作したアプリケーションのショートカットキーを、 ユーザーが後からカスタマイズできるようにするにはどうしたらよいでしょうか。 具体的には、VisualC++2005のリソースビューの[Accelerator]で編集するような内容を、ユーザーが後から行えるようにしたい、ということです。 単純に考えれば、OnKeyDownメソッドでキーが押されたときの場合わけを自分で実装するのかと思いますが、 Acceleratorがリソースファイルに記述されていることを考えると、もっとスマートな方法があるのではないかと思って。どなたかアドバイスなどいただけると幸いです。

  • カスタマイズが出来るネット上の掲示板を使いたいと思っています

    カスタマイズが出来るネット上の掲示板を使いたいと思っています ログイン機能や、書き込んだ内容への評価機能、評価が高い順に表示させる機能、 職業や年齢などの書き手の属性をチェック形式で入力できる機能、書き込める文字数制限、 などの機能を使えるような掲示板があるといいです。 そういう掲示板を、自分のホームページに出したいのですが、 どうやったら可能でしょうか? 詳しい方、教えてください。

  • Active Directory スキーマについて

    現在、Active Directoryの概要について、勉強をしている超初心者です。 Active Directoryスキーマについてどんなものかを調べているのですが、自分の認識で合っているのか自信がない為、教えて下さい。 (1)スキーマセットとは、属性とクラスの2つをまとめたものの事を言い、この2つは1つのフォレストに1セットしかおけない。 (2)クラスは属性の総称の事。 例えば、ユーザーというクラスの中に、属性であるユーザ名、氏名がある。 (3)スキーマの拡張とは、例えば、ユーザーというクラスに転入生としてニックネームさんが入ってきました。というような感じ。 上記三点について、もし認識が違うようなら正しい内容を教えて頂けると幸いです。よろしくお願いいたします。

  • エクセルでシートの振り分けを自動的にする方法

    初心者です。宜しくお願いいたします。 業務の1日のスケジュールをエクセルで管理しております。 主にお客様との相談や打ち合わせを管理しているのですが、 (1)シート1で1日のスケジュールを入力していきます。 (列)   AB   CD    E     F (行)  日付  時間  氏名   相談内容 ※(日付、時間、氏名は入力規則を使用して入力できるようにしています。) (2)シート2以降では、氏名ごとにシートを作成して、シート1に入力すると、自動的にシート2以降へ振り分けができるようにしたいのです。 (列)   AB   CD    E       (行) 日付  時間  相談内容 できるだけわかり易く教えていただければ幸いです。 宜しくお願いいたします。

  • JAVAのソースコードの非公開の方法

    JAVAファイルの内容を見られたくないので、 サーバーにあげたJAVAファイルの属性を変え、 ユーザーからの読み込みを不可にしましたが これで、完全に観覧できない状態になったでしょうか? 不安になったので質問させていただきました。 知識不足で申し訳ございませんが、よろしくお願いいたします。

  • JavaScriptからJAVAクラスを呼び出す

    JavaScriptからJavaクラスのメソッドやコンストラクタを呼び出す事ってできるのでしょうか? 今、行おうとしているのが、テキストにて入力した後に日付編集(4200812 → H20. 8. 12に変換)処理を行うというものです。 初期表示時は、Javaクラスで変換して表示させるので、大丈夫なのですが、どうしても入力したタイミングで変換させるには、JavaScriptを使用しなければなりません。 そこで、JavaScriptに元号情報やJavaで記述した制御などを記載すればできると思いますが、面倒臭いので、JavaScriptからJavaクラスのメソッドが実行できればなと思います。 そのような事はできるのでしょうか?? JDKは1.6です。

  • TomcatとMySQLが連携しなくなった?

    サーブレットを勉強しています。 勉強として、Eclipseを使ってWebアプリケーションを作っているのですが、なぜか以前まで連携していたMySQLと連携できなくなりました(DBにつながらなくなりました)。EclipseにMySQLドライバ(?)「mysql-connector-java-3.1.13-bin.jar」を入れて、やっています。 System.out.println(""); を使い、どこでエラー(try catchでcatchにいくところ)が出ているのかと調べると、 DriverManager.getConnection(DRIVER_URL,USER_NAME,PASSWORD); のところで、出ているようです。 何が原因として考えられるのでしょうか? よろしくお願いします。

  • OpenLDAP 補助クラスについて

    LDAPユーザーでsamba+メールをできるようにしたいと想い 以下のクラス7つを使用することにしました。 objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount objectClass: sambaSamAccount ただ、今回これにsquidを利用できるようにしようと考えたのですが、 上のクラスの組み合わせではhost属性を定義することができません。 補助クラスでhost属性が利用できるものがあれば それを利用しhost属性を定義したいと考えているのですが、 何のクラスを定義すればいいのかがわかりません。 host属性を利用するには、何のクラスを利用したらいいのか ご存知の方がいらっしゃいましたらご教授のほうよろしくお願いできないでしょうか? また、Javaみたいにクラスを調べることができる(http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/index.html)このようなLDAPのページがあるのでしょうか? ご存知の方がいらっしゃいましたらご教授のほうよろしくお願いできないでしょうか?

  • JDBCに初めて挑戦しようとしたのですが。

    「JAVA+MySQL+Tomcatで始めるWebアプリケーション開発入門」という本でJDBCに初めて挑戦しようとしたのですが、下記のようなエラーが出てうまく実行できませんでした。 java.sql.SQLException: Access denied for user: 'Mulder@localhost' (Using passwor d: YES) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:771) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1229) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2558) at com.mysql.jdbc.Connection.<init>(Connection.java:1485) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java :266) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at JdbcTest.main(JdbcTest.java:12) Exception in thread "main" java.lang.NullPointerException at JdbcTest.main(JdbcTest.java:24) 原因など、わかる方がいたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • スケジューラー又はグループウエアーを探しています

    以下のようなことができるWebスケジューラ及びグループウエアー(無料)を探しています。 今、一つのプロジェクトに3名(Aさん、Bさん、Cさん)のセクションリーダがいて、それぞれのリーダは各自プロジェクト会議をもっています。 Aさんは会議名M1、M2、M3を開催します。BさんはN1、N2、N3、N4の会議を開催します。 CさんはL1、L2、L3、L4の会議を開催します。 各リーダは自分の開催する会議に出席させる社員名(複数名)をプロジェクトのメインスケジューラ上で会議開催日・時間に記入します。 このスケジューラ上で3名のリーダは会議のスケジュールを管理します。 一方、リーダによって会議出席を登録された社員のカレンダーには自動的にその会議名が記載されるようなことができるスケジューラ及びグループウエアーを探しています。 このようにして一か月の会議スケジュール管理を行います。 会議はほぼ毎日開催されます。 入力はカレンダー形式で入力できるほうが好ましいです。 また、一日の時間区分も自分で設定できるものがいいです。 社員は予めプロジェクトの方で登録します。 例) Aさんが、8月1日の13:00-14:30の時間帯にスケジューラ上で社員の「橋本」さんを会議M1に出席させるために カレンダー上のその日時のところに「橋本」と入力すると、「橋本」さんのカレンダー上の8月1日 13:00-14:30のところに M1と自動的に記載される どなたか教えてください。

専門家に質問してみよう