我在frame里添加了两个自定义的按钮,用的是FlowLayout布局管理方式,可是两个按钮出现重叠了,怎么办?
解决方案 »
- 求指点
- 我是个初学者请老大们帮我看看~~
- String.valueOf(Math.random())
- 有关Dom4j读取XML的问题~~请高手来指点一下
- java编程思想的第3章的一道练习
- 利用JAVA开发windows应用程序(类似CS风格的程序)的可行性论证!
- ███急███在JBuilderX中run 一个jsp,出现 MAPPING configuration error for request URI 这个错误,请问高手,该如何解决啊?
- 关于socket的问题,高手请进!!!
- java IO篇1
- 如何删除一个目录下的指定的一个文件,为什么用File中的delete方法不好使
- 新手求教可执行的JAR问题
- 一个AWT程序,效果却显示不出来,请帮忙修改
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Graphics;
import java.awt.FlowLayout;
import java.awt.FontMetrics;
public class Exercise3 extends JFrame
{
public static void main(String[] args)
{
Exercise3 frame = new Exercise3();
frame.setTitle("Exercise 3");
frame.setSize(300,120);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new FlowLayout());
OvalButton button1 = new OvalButton("OK");
frame.add(button1);
OvalButton button2 = new OvalButton("Cancel");
frame.add(button2);
frame.setVisible(true);
}
}class OvalButton extends JButton
{
//data field
private String text;
private int OvalWidth = 130;
private int OvalHeight = 60;
//method field
public OvalButton()
{
this.text = "默认";
}
public OvalButton(String text)
{
this.text = text;
}
public void setOvalSize(int width,int height)
{
OvalWidth = width;
OvalHeight = height;
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
FontMetrics fm = g.getFontMetrics();
int xOfText = getWidth() / 2 - fm.stringWidth(text) / 2;
int yOfText = getHeight() / 2 + fm.getAscent() / 2;
this.setSize(OvalWidth + 20,OvalHeight + 20);
g.drawOval((int)(0.08 * getWidth()),(int)(0.1 * getHeight()), OvalWidth,OvalHeight);
g.drawString(text,xOfText,yOfText);
}
}
frame.setSize(300,120);frame.setSize(400, 120);2
this.setSize(OvalWidth + 20, OvalHeight + 20);
this.setPreferredSize( new Dimension( OvalWidth + 20, OvalHeight +20));
3
添加了
this.updateUI();
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Graphics;
import java.awt.FlowLayout;
import java.awt.FontMetrics;public class Exercise extends JFrame { public static void main(String[] args) {
Exercise frame = new Exercise();
frame.setTitle("Exercise 3");
frame.setSize(400, 120);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new FlowLayout());
OvalButton button1 = new OvalButton("OK");
frame.add(button1);
OvalButton button2 = new OvalButton("Cancel");
frame.add(button2);
frame.setVisible(true);
}
}class OvalButton extends JButton {
//data field private String text;
private int OvalWidth = 130;
private int OvalHeight = 60; //method field
public OvalButton() {
this.text = "默认";
} public OvalButton(String text) {
this.text = text;
} public void setOvalSize(int width, int height) {
OvalWidth = width;
OvalHeight = height;
} protected void paintComponent(Graphics g) {
super.paintComponent(g); FontMetrics fm = g.getFontMetrics();
int xOfText = getWidth() / 2 - fm.stringWidth(text) / 2;
int yOfText = getHeight() / 2 + fm.getAscent() / 2;
this.setPreferredSize( new Dimension( OvalWidth + 20, OvalHeight + 20));//this.setSize(OvalWidth + 20, OvalHeight + 20);
g.drawOval((int) (0.08 * getWidth()), (int) (0.1 * getHeight()), OvalWidth, OvalHeight);
g.drawString(text, xOfText, yOfText);
this.updateUI();
}
}