Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

DrawString( ) not happening in Frame Window

Posted on 2000-04-17
6
Medium Priority
?
225 Views
Last Modified: 2006-11-17
Hi,

I am a beginner with Java programming. Got a few stoppers here. Here is my program

import java.awt.*;

public class BaseFrame2 extends Frame
{
    TextDialog dlg;
      String message = "This is a Window";
      BaseFrame2(String title)
      {
            super(title);
            setFont(new Font("Helvetica",Font.BOLD,12));
            dlg = new TextDialog(this,"Enter Text",true);
            dlg.resize(150,100);

            MenuBar mb = new MenuBar();
            Menu m = new Menu("Colors");
            m.add(new MenuItem("Red"));
            m.add(new MenuItem("Green"));
            m.add(new MenuItem("Blue"));
            m.add(new MenuItem("-"));
            m.add(new CheckboxMenuItem("Black"));

            Menu mf= new Menu("Font");
            mf.add(new MenuItem("Regular"));
            mf.add(new MenuItem("Bold"));
            mf.add(new MenuItem("Italic"));
            m.add(mf);
            m.add(new MenuItem("Set Text"));

            mb.add(m);
            setMenuBar(mb);
      }

      public void paint(Graphics g)
        {
          g.drawString(message,20,20);
      }

From my main applet class on a Button Click Action I am popping up the above defined Frame. But I am not able see the message "This is a window" drawn into the Frame. What could be wrong? I tried even explicitly calling repaint()
in the constructor. But still I am not able to see the message drawn into my Frame Window. Why is this happening? Hope one of you there can help me..
Is there any settings I have to give to see texts drawn into my Frame.

Thank you very much..
Prince
0
Comment
Question by:princejose
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 1

Expert Comment

by:phutson
ID: 2724170
I don't see your validate()? Is it in the applet?


fyi from the api

validate

public void validate()

     Validates this container and all of its subcomponents.

     AWT uses validate to cause a container to lay out its subcomponents again after the components it contains have been
     added to or modified.
     Overrides:
          validate in class Component
     See Also:
          validate(), Component.invalidate()

-Philip
0
 
LVL 3

Accepted Solution

by:
falter earned 300 total points
ID: 2724323
Hu princejose,

i tried your code your message is behind the menubar.
Try something like setSize(400,400) in the constructor of the BaseFrame2 and something like
g.drawString(200,200) at the pain method.

And you will see your message.
If not play around with x and y in drawString.

regards
jf
0
 
LVL 4

Expert Comment

by:kylar
ID: 2724939
at 20,20 the String is probably being hidden inside the insets somewhere. try what falter said and see if that works.

Kylar
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Expert Comment

by:Ash_
ID: 2725436
princejose,

like falter said, you are not setting the size of the frame at all.
preferably, call pack() in the constructor ( does the laying out & calculation of sizes). But for this, you need to add components (not use paint(). For example

BaseFrame2()
{
//previous code
//add new WhateverDisplay();
}

class WhateverDisplay
{
  public void paint(Graphics g)
  {
  //blah blah
  }
  public Dimension getPreferredSize()
  {
  //return size u want( preferably calculate it dynamically)
}
0
 
LVL 1

Expert Comment

by:samers
ID: 2725641
try to pring in another x,y axis

for example 100,100
and see what happen
0
 

Author Comment

by:princejose
ID: 2725651
Hi Falter,

 I was of the impression that the pixels are counted from beneath the menubar. But what you said is correct. When I changed the position of the string it is visible.

  Thank you very much. Thanks to all who had taken their time to respond to my query.

Prince

0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This video teaches viewers about errors in exception handling.
Suggested Courses

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question