--iアプリ-- ListBoxの項目をPanelクラスでTicker型に流し込み表示させたい

このQ&Aのポイント
  • ニュースを配信するiアプリで、あるクラスでニュースの項目をListBoxに入れ、Panelクラスのほうに送りたい。
  • PanelクラスでListBoxの項目をTicker型に表示させる方法がわからない。
  • ListBoxの項目をPanelのほうで取得できる方法を教えてください。
回答を見る
  • ベストアンサー

--iアプリ-- ListBoxの項目をPanelクラスでTicker型に流し込み表示させたい

ニュースを配信するiアプリで、 ・あるクラスでニュースの項目をListBoxに入れます。 ListBoxは以下のように定義してあります。 private ListBox itemList = new ListBox(ListBox.NUMBERED_LIST, 9); そのListBoxをPanelクラスのほうに送ります。 送ったPanelクラスのほうではニュースの項目を確認することはできます。 ここで問題ですが、 Panelに送ったListBoxですが、一つ一つの値(項目)をTicker型(流れるように表示したい)にして表示させたいのです。 Panelクラス--- panel.add(ListBox); //ListBoxの項目が表示される tick = new Ticker(); ?? TickにはString型の文字を入れないといけないのはわかるのですが、ListBoxの項目をPanelのほうで取得できないのです。 どうすれば取得できるのでしょうか? 教えてください、お願いします。

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

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

  • ベストアンサー
  • isle
  • ベストアンサー率51% (77/150)
回答No.1

> ListBoxの項目をPanelのほうで取得できないのです。 ListBox#getItem(int)メソッドを使います。 もしコンパイルエラーになるとかいう話なら、 まずアクセス制御について勉強しましょう。

sunflow123
質問者

お礼

ありがとうございました。 もう一度勉強しし、挑戦してみます☆

関連するQ&A

  • ListBoxの最大表示項目数について

    お世話になります。 vbaのフォーム上にListBoxを配置し、ColumnCountを13と定義しましたが、 ColumnHeadsをTrueにし、項目数を見てみると10項目しか表示されません。 実際に実行してみて、仮の値を設定してみても、10項目しか表示されません。 Webで検索してみましたが、「255文字の上限では」と似たような質問の回答を確認しましたが、 13項目の値を全て足しても200文字に届きません。 11項目以上は表示できないのでしょうか。 環境はExcel2000,2002で確認をいたしました。 原因をご存知の方、ご教授下さいますようよろしくお願いいたします。

  • ListBox内のobjectのメンバ変数

    VS2013 C# Windows Form Application での質問です ListBox内の項目に自作クラスPos(メンバ変数double x,y)を下記のように入れました listBox1.Items.Add(new Pos()); このとき double a = listBox1.~.x のようにlistBoxに入れたPosクラスのメンバ変数の値は取得できませんか?

  • javaのpanelが表示されません

    下記のプログラムを作ったんですが、eclipseで実行するとフレームは表示されますが、空のフレームのような状態で、panelやボタンなどは表示されません。mainとは別のクラスで作成してるからなんでしょうか?よろしくお願いします。 import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class Table0 { public static void main(String[] args) { new Frame0(); } } class Frame0{ JFrame frame; JPanel panel; JScrollPane jsp; JTable table; DefaultTableModel dtm; public Frame0(){ frame=new JFrame("table"); frame.setBounds(30, 30, 300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); table=new JTable(8,5); jsp=new JScrollPane(table); jsp.setPreferredSize(new Dimension(250, 70)); panel=new JPanel(); panel.add(jsp); Container c=frame.getContentPane(); c.add(panel,BorderLayout.CENTER); } }

    • ベストアンサー
    • Java
  • JavaでのSwingを使った簡易電卓作成

    Javaについて勉強中の学生です。 よろしくお願いします。 CGIによるプログラムは一通り勉強しました。 次にGUIによるプログラムを勉強中です。 そこで電卓を作ってみようと思いましたが、よくわからないところがあります。 ご教示いただければ幸いです。 一応外見だけは作ることができましたが、イベントを登録するときに電卓のボタンをbtn1,btn2,btn3…とすればイベントを登録することはできるのですが、それだとボタンの分だけ作成しなければならず修正を加えるのが大変になってしまいます。 例)btn1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ hyozi.setText(hyozi.getText() + "1"); } } そこで「btn」に統一しボタンに表示されている文字列を使い簡潔にプログラムをまとめたいのですがどのようにすればよいのかわかりません。以下のプログラムに追加できるようなものを教えていただけないでしょうか? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Dentaku{ private JFrame frame; private JPanel panel_fun,panel_ten; private JTextField hyozi; private JButton btn; public Dentaku(){ //フレームの作成してレイアウトをセット frame = new JFrame("簡易電卓プログラム"); frame.setLayout(new BorderLayout()); //パネルを作成してレイアウトをセット panel_fun = new JPanel(); panel_fun.setLayout(new GridLayout(2,3)); panel_ten = new JPanel(); panel_ten.setLayout(new GridLayout(4,3)); //表示用テキストボックスを作成 hyozi = new JTextField(); //電卓のボタンを作成 panel_fun.add(btn = new JButton("CA")); panel_fun.add(btn = new JButton("+")); panel_fun.add(btn = new JButton("-")); panel_fun.add(btn = new JButton("*")); panel_fun.add(btn = new JButton("/")); panel_fun.add(btn = new JButton("=")); panel_ten.add(btn = new JButton("1")); panel_ten.add(btn = new JButton("2")); panel_ten.add(btn = new JButton("3")); panel_ten.add(btn = new JButton("4")); panel_ten.add(btn = new JButton("5")); panel_ten.add(btn = new JButton("6")); panel_ten.add(btn = new JButton("7")); panel_ten.add(btn = new JButton("8")); panel_ten.add(btn = new JButton("9")); panel_ten.add(btn = new JButton("0")); //フレームに表示用テキストボックスをセット(BorderLayoutの北側) frame.add(hyozi,BorderLayout.NORTH); //フレームにパネルをセット(BorderLayoutの中央,南側) frame.add(panel_fun,BorderLayout.CENTER); frame.add(panel_ten,BorderLayout.SOUTH); //フレームの詳細設定 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,250); frame.setVisible(true); } //mainメソッドの定義 public static void main(String[] args){ Dentaku application = new Dentaku(); } }

    • ベストアンサー
    • Java
  • 【iアプリ】選択した項目に連動して表示するコンポーネントを変更したい

    dojaをつかってiアプリを作りたいと思っている初心者です 実現したい内容は下記の通りです ========================================  [初期状態]   panelにドロップダウンリスト(ListBox.CHOICE)を表示  [実現したい内容]   1.ドロップダウンリストから1つ選択する   2.その内容に紐づく内容をドロップダウンリストの下に     アンカーテキストで表示する   3.再度ドロップダウンリストで他の項目を選択した場合、     今まで表示していたアンカーテキストをクリアし     新たに選択された内容に紐づく内容を     ドロップダウンリストの下に表示する ======================================== 2.までは実現できたのですが、3.の処理を行うにあたって 2.の内容をクリアする方法がわかりません また、2.で表示する項目の件数は選択した項目により変わります またこのような制御はiアプリでは一般的ではないのでしょうか? ご存知の方がいらっしゃいましたら是非ともよろしくお願いいたします

    • ベストアンサー
    • Java
  • listBoxとTimerについて C#

    listBoxとTimerについて C# ヤフーニュースのURLをlistboxへ入れます。 そしてlistBox1の中身を画面表示させたら、次にlistBox2の中身も表示したいと思っています。 最初listBoxが1つだったときはうまく行っていたのですが、listBoxを増やすとうまく行かなくなりました。 この状態だと、listBox2の中身だけ表示させて終わってしまいます。 Timerの使い方が怪しいと思うのですが、どうでしょうか? 些細なことでも何でもいいのでご意見頂ければ助かります。 -----以下コード抜粋------ public partial class Form1 : Form { public Form1() { InitializeComponent(); } int urlindex = 0; private void Form1_Load(object sender, EventArgs e) { listBox1.AllowDrop = true; listBox1.DragEnter += new DragEventHandler(listBox1_DragEnter); listBox1.DragDrop += new DragEventHandler(listBox1_DragDrop); listBox2.AllowDrop = true; listBox2.DragEnter += new DragEventHandler(listBox2_DragEnter); listBox2.DragDrop += new DragEventHandler(listBox2_DragDrop); } private void listBox1_DragEnter(object sender, DragEventArgs e) { //URLのみ受け入れる//@ITより if (e.Data.GetDataPresent("UniformResourceLocator")) e.Effect = DragDropEffects.Link; else e.Effect = DragDropEffects.None; } private void listBox2_DragEnter(object sender, DragEventArgs e) { //URLのみ受け入れる//@ITより if (e.Data.GetDataPresent("UniformResourceLocator")) e.Effect = DragDropEffects.Link; else e.Effect = DragDropEffects.None; } private void listBox1_DragDrop(object sender, DragEventArgs e) { //ドロップされたリンクのURLを取得する//@ITより string url = e.Data.GetData(DataFormats.Text).ToString(); //結果を表示 listBox1.Text = url; //MessageBox.Show(url); //ドロップされたデータがstring型か調べる if (e.Data.GetDataPresent(typeof(string))) { ListBox target = (ListBox)sender; //ドロップされたデータ(string型)を取得 string itemText = (string)e.Data.GetData(typeof(string)); //ドロップされたデータをリストボックスに追加する target.Items.Add(url); //MessageBox.Show("表示"); } } private void listBox2_DragDrop(object sender, DragEventArgs e) { //ドロップされたリンクのURLを取得する//@ITより string url = e.Data.GetData(DataFormats.Text).ToString(); //結果を表示 listBox2.Text = url; //MessageBox.Show(url); //ドロップされたデータがstring型か調べる if (e.Data.GetDataPresent(typeof(string))) { ListBox target = (ListBox)sender; string itemText = (string)e.Data.GetData(typeof(string)); target.Items.Add(url); } } private void goButton_Click(object sender, EventArgs e) { urlindex = 0; timer1.Start(); timer2.Start(); } private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); if (listBox1.Items.Count != 0 && urlindex < listBox1.Items.Count) { string url = (string)listBox1.Items[urlindex]; webBrowser1.Navigate(url); urlindex++; } } private void timer2_Tick_1(object sender, EventArgs e) { timer2.Stop(); if (listBox2.Items.Count != 0 && urlindex < listBox2.Items.Count) { string url = (string)listBox2.Items[urlindex]; } } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { timer1.Start(); timer2.Start(); } private void listBox2_SelectedIndexChanged(object sender, EventArgs e) { }

  • xpのコントロールパネルの関連項目で「...その他のオプション」が非表示に?

    xpのコントロールパネルのウィンドウを表示したときに ウィンドウの左側の方の「関連項目」に 「コントロールパネルのその他のオプション」メニューが 表示されるはずなんですが しばらく前から、なぜか、表示されなくなりました このオプションメニューから、Symantecなどの オプションメニューに到達していたので やや不便になっています なぜこうなったのでしょうか?

  • コレクションの数値をSortで並び替える

    ご多忙中申し訳ありません。 Dim data As New List(Of Integer)で型指定した、dataの数値を単純に、下記のコードのようにdata.Sort() で並べ替えをしても綺麗に並べ替えが出来ますが、殆どのサイトでは、このような使い方をせず、IComparerインターフェイスを実装したクラスを使ったり、又はバブルソートなどを使って並べ替えをしていますが。 単純にdata.Sort() のような、並べ替えは問題があるのでしょうか、大変恐縮ですがご教示ください。 FormにButtonとListBoxを貼り付けました。 Dim data As New List(Of Integer) 'Integer型にする。 Private Sub f() Handles MyBase.Load 'データをaddする。 data.Add(235) data.Add(4) data.Add(567) data.Add(53) data.Add(56) data.Add(87943) data.Add(43) data.Add(890) data.Add(342) data.Add(56) data.Add(64) data.Add(5) data.Add(0) ListBox1.Items.Clear() End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim dtcnt As Integer 'リストの数の変数。 dtcnt = data.Count 'リストの数を取得してループの回数に使う。 data.Sort() '並べ替え For i = 0 To dtcnt - 1 ListBox1.Items.Add(data(i)) 'テストの結果をリストボックスに表示。 Next 'ListBox1には綺麗に並べ替えが完了して表示されています。 End Sub 何卒宜しくお願いします。

  • javaで2パネルにテーブルデーターを表示

    今日は! javaの初心者で、初心者なりに、フレームに2個のパネルを作成し、各パネルに同じ テーブルデーターを表示するコードを作ってみましたが、旨く行きません。 下記の添付コードで、不具合点の改造箇所をお教え頂けますと大変助かります。 //================================== package packageA; import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; public class JTableTest2 extends JFrame{ public static void main(String[] args){ JTableTest2 test = new JTableTest2("JTableTest2"); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); test.setVisible(true); } JTableTest2(String name){ setBounds( 0, 0, 300*2, 140*2); setTitle(name); String data[][] = { //テーブルデータを作る {"田辺太郎","89","79","100","100"}, {"山田大助","68","55","72","100"}, {"佐藤恵美","78","69","81","100"} }; //列名の配列 String title[] = {"名前","数学","英語","国語","音楽"}; JTable table = new JTable(data,title); //テーブルデータと列名でテーブルを作る JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JScrollPane sp = new JScrollPane(table); sp.setPreferredSize(new Dimension(250, 80)); p1.add(sp); //JPanelにJScrollPaneを結合する p2.add(sp); //JPanelにJScrollPaneを結合する getContentPane().add(p1, BorderLayout.WEST); getContentPane().add(p2, BorderLayout.EAST); } } 以上、宜しくお願いします。

    • ベストアンサー
    • Java
  • panelのスクロール表示について

    C#にて、WIndowsアプリを作成しています。 GridviewのcellEnterイベント発生時に、Panelに文字を記載する! というプログラムを 作成しています。表示の文字がPanel内を超過した際の事を考え、PanelのAutoscroll = Trueに設定しています。しかしながら、文字がPanelを超過してもうまくスクロールを表示してくれません。。。 どのようにすれば、解決できるのでしょうか。。。。 ご存知の方、ご教授願います。 以下、文字列記載のPaintメソッドです。 また、Paintメソッド呼び出しには、    this.pCon.Invalidate(); を利用しています。 private void pCon_Paint(object sender, PaintEventArgs e) { StringFormat strformat = new StringFormat(); if (this.pCon.Enabled == true) { SolidBrush brushText = new SolidBrush(ForeColor); // 通常の文字列を描画する e.Graphics.DrawString( c, // 描画する文字列 this.Font, // フォント brushText, // 色(ブラシ) e.ClipRectangle,// 描画領域 strformat); // 文字列の書式 brushText.Dispose(); } else { // 無効化された文字列を描画する ControlPaint.DrawStringDisabled( e.Graphics, // 描画オブジェクト c, // 描画する文字列 this.Font, // フォント this.BackColor, // 色 e.ClipRectangle,// 描画領域 strformat); // 文字列の書式 } strformat.Dispose(); }

専門家に質問してみよう