解决方案 »
- 请教jframe在执行完哪个方法后jframe里面放置的组件的大小确定下来了?
- "a".getBytes() 为什么只返回一个字节的数组.
- 请教 java 格式化输出问题
- 请教 c++到java的类型转换问题!
- 对象调用方法后会怎么样?是否可以嵌套调用方法
- 如何隐藏一个JTABLE的表头,如何设置JTABLE只能选取一个单元格
- [求助]请问哪有像outlook的calendar那样的订计划的swing组件?
- 菜鸟提问 关于javac
- 知道就有分!very easy!!(马上结贴)
- 送分的来了,java1.4.0的问题
- jar里面的menifest.mf文件可以指定jar运行的编码吗,如何指定
- 一个继承的小问题
我试了一下新增个JPanel一样不行:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;public class FirstExample
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
DrawFrame frame = new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}class DrawFrame extends JFrame
{
public DrawFrame()
{
setTitle("DrawTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
DrawComponent component = new DrawComponent();
Background b = new Background(); //新建背景panel
add(b); //添加背景panel
add(component);
}
public static final int DEFAULT_WIDTH = 400;
public static final int DEFAULT_HEIGHT = 400;
}class DrawComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
double leftX = 100;
double topY = 100;
double width = 200;
double height = 150;
g2.draw(new Line2D.Double(leftX, topY, leftX + width, topY + height));
g2.draw(new Line2D.Double(leftX, topY + height, leftX + width, topY)); }
}//以下为新增的Background类
class Background extends JPanel
{
public void paintBorder(Graphics g)
{
setBackground(Color.RED);
}
}
import javax.swing.JPanel;public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setBackground(Color.RED);
frame.add(panel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
明白了,谢谢,
再问一下,怎么样同时显示红色背景和一个叉呢?
试了一下,发现panel会把frame给覆盖了