Vista/7でScrollbarの表示が異常

このQ&Aのポイント
  • Windows VistaとWindows 7でScrollbarの表示が異常です。
  • Scrollbarを表示するAppletのサンプルコードを作成しましたが、Vista/7ではScrollbarのつまみの部分が表示されません。
  • getVisibleAmount()の戻り値も100で、問題はないようです。対応策をご存知の方、ご教示いただけないでしょうか。
回答を見る
  • ベストアンサー

Vista/7でScrollbarの表示が異常

Scrollbarを表示するAppletサンプルコードを書きました。 import java.applet.Applet; import java.awt.Scrollbar; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.awt.*; /* <applet code="kktest482" width=400 height=200> </applet> */ public class kktest482 extends Applet implements AdjustmentListener { static final long serialVersionUID = 0; TextArea ta; public void init() { Scrollbar sb = new Scrollbar(Scrollbar.VERTICAL, 50, 100, 0, 255); sb.addAdjustmentListener(this); add(sb); ta = new TextArea(10, 20); add(ta); } @Override public void adjustmentValueChanged(AdjustmentEvent arg0) { // TODO 自動生成されたメソッド・スタブ Scrollbar sb = (Scrollbar)arg0.getAdjustable(); ta.append("AdjustmentEvent: " + sb.getValue() + "\n"); ta.append("可視量: " + sb.getVisibleAmount() + "\n"); } } jdk1.6.0_24を使用中です。 Windows XPでは、Scrollbarのつまみの部分(可視量)が表示されますが、 Vista/7では、表示されません。 appletviewerでもブラウザのApplet表示でも同じ現象となります。 getVisibleAmount()の戻り値も100で、問題ありません。 対応策をご存知の方、よろしくお願いします。

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

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

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  Scrollbar の長さが足りないせいだと思います。  長くすると出てきますよ。 public void init() {   Scrollbar sb = new Scrollbar(Scrollbar.VERTICAL, 50, 100, 0, 255);   sb.addAdjustmentListener(this);   sb.setPreferredSize(new Dimension(17,150));   add(sb);   ta = new TextArea(10, 20);   add(ta); }

YkazubonY
質問者

お礼

回答ありがとうございます。 SuperクラスであるComponentクラスの関数を知らないといけないということですね。勉強になりました。

関連するQ&A

  • JavaAppletがIEで表示できない

    毎日すいません。 せっぱ詰まってて、非常に困ってます。 実は、昨日教えて頂いたものは、AppletViewerを介して、 しっかりとできあがったのですが、なぜか、インターネットエクスプローラからは見えないんです。 作ったファイル、 JText01.class JText01.html JText01.java は、全て同じフォルダにあります。 ご存じの方、どうかお力を貸して下さい。 お願いします。 ------------- HTML ソース ------------- <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <title>JAVA Applet Test</title> </head> <body> <h2>JText01</h2> <applet code="JText01.class" width="300" height="100"> </applet> </body> </html> ------------- JAVA ソース ------------- /* TextArea改行用テスト */ import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*; public class JText01 extends JApplet{ public void init() { JTextArea ta = new JTextArea( 5, 20); ta.setLineWrap(true); getContentPane().add(new JScrollPane(ta), BorderLayout.CENTER); }

    • ベストアンサー
    • Java
  • アプレットでボタンを押したときの処理について質問です。

    JAVAで2つのクラスを作成しました。 1つは初期画面で「入力」「検索」等と言ったボタンを持ち、ボタンを押されると別の画面に切り替えるクラスです。もう1つは初期画面で「入力ボタン」を押されて表示する画面のクラスです。 初期画面でボタンが押されたときの処理を次のようにしました。 public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.equals("入力")){ Input input = new Input(); } ですが、Inputクラスの画面が表示されません。 Inputクラスのソースは import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code="Input" width=250 height=250> </applet> */ public class Input extends Applet { Panel panel; TextArea textarea; public void init()//部品を初期化する { panel = new Panel(); textarea = new TextArea(); setLayout(new BorderLayout()); add(textarea,BorderLayout.CENTER); add(panel,BorderLayout.SOUTH); } } です。ボタンを押された時のイベントを受け取るまでの処理は正しいと思うのですが、どのように改良すればよろしいでしょうか?

    • ベストアンサー
    • Java
  • アプレットでスクロールバーを作りたいがコンパイルエラーが出る。

    アプレットでスクロールバーを作ろうと思っています。下記のコードをコンパイルすると 「import java.applet.Applet;abstract として宣言する必要があります。」とコンパイルエラーになります。いろいろ調べましたが原因がわかりません。なぜこのようなことが生じるのでしょうか? import java.awt.*; import java.awt.event.*; public class testScroll extends Applet implements AdjustmentListener{ Scrollbar sbar; public void init(){ setLayout(new BorderLayout()); sbar=new Scrollbar(Scrollbar.HORIZONTAL,1,10,1,300); add("South",sbar); sbar.addAdjustmentListener(this); } public void paint(Graphics g){ g.setColor(Color.gray); g.fillRect(0,0,350,150); } public void adjustmentValueCanged(AdjustmentEvent e){ if(e.getAdjustable()==sbar){ repaint(); } } } ■C:\**> javac testScroll.java testScroll.java:7: testScroll は abstract として宣言する必要があります。 adjustmentValueChanged(java.awt.event.AdjustmentEvent) を testScroll で定義しません。 public class testScroll extends Applet implements AdjustmentListener{ ^ エラー 1 個

    • ベストアンサー
    • Java
  • java.awt.Label を縁取り表示したい

    Javaバージョンは、JDK-1.2.2_017 です。 (このバージョンじゃないと駄目なんです) ラベルの表示をするのにjava.awt.Labelを使用しているのですが、 ・Labelの縁取り(枠のようなもの) ・ボタンのように浮き上がらせる というようなことが、Labelクラスで可能でしょうか。 ラベルの見た目を変えたいので、どなたかご存知のかたいらっしゃいましたら 教えてください。お願いします。 import java.applet.Applet; import java.awt.*; public class label1 extends Applet { public void init(){ Label Lab = (Label)add(new Label("Label1" , Label.CENTER)); Lab.setText("test"); setBackground(Color.blue); add(Lab); } }

  • 簡単な暴走プログラム

    ボタンをクリックすると、classのディレクトリ文字を追加するという プログラにしようと思っています。 ボタンをクリックすると、テキストエリアへの書き込みが止まりません。 ソースではループしているように見えないから原因不明です。 どこが悪く、どう直せばいいんですか? import java.awt.*; public class aaaa0 extends java.applet.Applet { Button btn; TextArea ta; public void init() { add(ta = new TextArea(50, 50)); add(btn = new Button("Btn")); } public boolean action (Event e, Object o) { if (e.target == btn) { String str = ""; String buf = ""; str = getCodeBase().toString(); buf = ta.getText(); ta.setText(buf + "\r\n" + str); } return super.handleEvent(e); } }

    • ベストアンサー
    • Java
  • アップレットのアクションリスナーが動作しません

     アップレットにアクションリスナーをつけて、アップレットとキャンバスにアクションが来るように 下の様なコードを書いてやりましたがうまく動作しません。どこがまずいのでしょうか、宜しくお願 いします。  ・mouseClickedするとアプレットに四角を書くようにしていますが、最初に表示されてしまいます。  ・mouseEnteredするとキャンバスに四角を書くようにしていますが、最初には表示されず、 mouseEnteredでも四角を書きません。  ・"cs.paint(g);"での書き方が悪いのでしょうか。「gを解決できません」と表示されます。   "paint(g);"としても同じです、"mouseClicked"の中でも同じ書き方ですが、   「gを解決できません」というエラー表示は出ていません。  原因が全く分かりません、どこをどのように修正したら良いのでしょうか、宜しくお願い致します。 ================================================================== import java.applet.Applet; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.geom.AffineTransform; public class ActionTest extends Applet implements MouseListener { Canvas cs ; public void init() { this.setBackground(Color.pink); Canvas cs = new Canvas( ) ; cs.setBackground(Color.green); cs.setSize( 100 , 100 ) ; this.add( cs ) ; this.addMouseListener( this ) ; } public void paint(Graphics g) { g.fillRect( 50 , 50 , 10 , 10 ) ; } public void mouseClicked(MouseEvent e) { Graphics g = getGraphics() ; setBackground( Color.cyan ) ; paint(g) ; repaint(); } public void mouseEntered(MouseEvent e) { cs.setBackground( Color.orange ) ; cs.paint(g) ; repaint(); } public void mouseExited(MouseEvent arg0) { } public void mousePressed(MouseEvent arg0) { } public void mouseReleased(MouseEvent arg0) { } } ==================================================================

    • ベストアンサー
    • Java
  • JAVAのテキストエリアを自由に着けたり外したい

    JAVAアプレットで 設置したテキストエリアを クリックすると外すようにしたい 以下のようにソースを組んだのですが クリックしても消えてくれませんどうしたらいいでしょうか import java.awt.*; import java.awt.event.*; import java.applet.*; import java.util.Calendar; import java.util.Date; public class Test01 extends Applet implements MouseListener { char mode = 0; //表示画面のモード //編集エリアの入力 TextArea textArea1; public void init() { addMouseListener(this); //Applet内のMouseイベント } public void paint(Graphics g){ textArea1 = new TextArea(); if(mode == 0) { this.remove(textArea1); } else if(mode == 1) { textArea1.setBounds(new Rectangle(10, 10, 250, 70)); this.add(textArea1); } } //Mouseがクリックされた public void mouseClicked(MouseEvent e){ int mx=e.getX(); //現在のMouseのx座標を取得 int my=e.getY(); //現在のMouseのy座標を取得 if(mode == 0) { mode = 1; } else if(mode == 1) { mode = 0; } repaint(); } //MouseはApplt内に入りました public void mouseEntered(MouseEvent e){ //repaint(); } //Mouseが外に出た public void mouseExited(MouseEvent e){ //repaint(); } //Mouseを押した public void mousePressed(MouseEvent e){ //repaint(); } //Mouseが離されました public void mouseReleased(MouseEvent e){ //repaint(); } }

    • ベストアンサー
    • Java
  • スクロールバー

    Javaを始めたばかりの者です。 すごく基本的な質問をさせて頂きます。 恥ずかしいのですが、スクロールバーを付けようとしても付けることができませんでした。 以下がそのプログラムですが、どうすればよいか正直わかりません。よければ教えて下さい。 import java.awt.*; import javax.swing.*; public class ScrolTest { public JPanel panel =new JPanel(); public static void main (String[] argv) { JFrame frame =new JFrame("てすとー"); frame.setSize(50000,6000); Scrollbar scrollbar = new Scrollbar(); frame.add(scrollbar, null); scrollbar.setBounds(new Rectangle(220, 15, 15, 180)); frame.show(); } }

  • TextAreaでの文字の色

    こんばんわ。 皆様、ゴールデンウィークいかがお過ごしでしょうか? さて、TextAreaもしくはJTextAreaで、一行づつ、文字の色を変えるにはどうしたらいいのでしょうか? 以前も、同じ内容の質問があったようですが、(http://oshiete1.goo.ne.jp/kotaeru.php3?q=22309) 読んでみたのですがStylepadというDEMOがどこにあるかわからず、解決できないのでよろしくお願いします。 解決できそうなサンプルのURLなど分かりましたら、回答していただければとてもたすかります。 import java.applet.*; import java.awt.*; import java.swing.*; public class test extends JApplet { public void init() { Container con = getContentPane(); String str1 = "あいうえお\n"; String str2 = "かきくけこ\n"; JTextArea JT = new JTextArea(); con.add(JT); JT.append(str1); JT.append(str2); } } これの"あいうえお"と"かきくけこ"を異なる色にしたいのですが、どうしたらいいのでしょう?

    • ベストアンサー
    • Java
  • HTMLファイルを開きたい

    こんにちは、いつもお世話になっています。 質問があります。 アプレットでボタンを押すと、 HTMLファイル「c:/test_folder/test.html」 を開きたいのですが、 下記コードの(☆) のところに何を書いていいかわかりません。 どなたかご存知でしたら教えていただけないでしょうか? よろしくお願いします。 ============================================================= import javax.swing.*; import java.awt.*; import java.applet.Applet; import java.awt.event.*; import java.net.*; public class situmon extends Applet implements ActionListener { JPanel panel; JButton button; public void init() { panel=new JPanel(); button=new JButton("次へ"); button.addActionListener(this); panel.add(button); this.add(panel); } public void actionPerformed(ActionEvent e) { if(e.getSource()==button) { (☆); } } }

    • ベストアンサー
    • Java

専門家に質問してみよう