筱羅卜
2016-05-07 02:35
采纳率: 100%
浏览 959
已采纳

java GUI 问题 求好心人帮忙看看,谢谢

我有一道练习题,题目大致意思是:只用线和画圆输出“HELLO”,我写出的程序不能同时输出所有字母,哪位好心人可以帮我看看改正一下么
源码:
package test;

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

public class DrawHelloTest{
public static void main(String[] args){

    LetterH1 h=new LetterH1();      
    LetterE1 e=new LetterE1();
    LetterL1 l=new LetterL1();
    LetterO1 o=new LetterO1();

    JFrame frame=new JFrame();
    frame.getContentPane().add(h);
    frame.getContentPane().add(e);
    frame.getContentPane().add(l);
    frame.getContentPane().add(o);
    frame.setSize(600, 500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}

}

class LetterH1 extends JPanel{
public void paintComponent(Graphics g){
//g.setColor(Color.pink);
g.drawLine(50,50,50,20);
g.drawLine(70,50,70,20);
g.drawLine(50, 35, 70, 35);
}
}

class LetterE1 extends JPanel{
public void paintComponent(Graphics g){
//g.setColor(Color.pink);
g.drawLine(75,50,75,20);
g.drawLine(75,50,95,50);
g.drawLine(75, 35, 95, 35);
g.drawLine(75, 20, 95, 20);
}
}

class LetterL1 extends JPanel{
public void paintComponent(Graphics g){
//g.setColor(Color.pink);
g.drawLine(100,50,100,20);
g.drawLine(100,50,120,50);
g.drawLine(125,50,125,20);
g.drawLine(125,50,145,50);
}
}

class LetterO1 extends JPanel{
public void paintComponent(Graphics g){
//g.setColor(Color.pink);
Graphics2D g2 = (Graphics2D) g;
Rectangle2D rect = new Rectangle2D.Double(150, 20, 20, 30);
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
}
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • lazy cat 2016-05-08 04:51
    已采纳

    frame那里设一下layout,就不会被覆盖了:

        frame.setLayout(new GridLayout());
    
    打赏 评论

相关推荐 更多相似问题