java 窗口的问题
java中运行图形界面的时候是不是只能一个窗口显示内容?为什么我在弹出的第二个JFrame中是内容都不显示?我是用第一个JFrame,调用一个类,然后用这个类来新建第二个...
java中运行图形界面的时候是不是只能一个窗口显示内容?为什么我在弹出的第二个JFrame中是内容都不显示?
我是用第一个JFrame,调用一个类,然后用这个类来新建第二个JFrame(这个JFrame跟第一个不是同一个JFrame类),然后用这个类修改第二个JFrame,结果就是第二个JFrame不能显示内容,为什么啊? 展开
我是用第一个JFrame,调用一个类,然后用这个类来新建第二个JFrame(这个JFrame跟第一个不是同一个JFrame类),然后用这个类修改第二个JFrame,结果就是第二个JFrame不能显示内容,为什么啊? 展开
1个回答
展开全部
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JFrame{
/**
* @param args
*/
public static void main(String[] args) {
new Test().init();
}
JPanel buttonPanel=new JPanel();
JButton round=new JButton("圆");
/
JButton rectangle=new JButton("长方形按钮");
int roundX=130,roundY=150,roundW=50,roundH=50;
int rectangleX=400,rectangleY=150,rectangleW=50,rectangleH=50;
public void init(){
setTitle("圆和长方形");
setLayout(null);
setSize(600,400);
setResizable(false);//设置窗口为隐藏
setLocationRelativeTo(null);
buttonPanel.setLayout(null);//设置布局方式
buttonPanel.setBounds(0, 300, 600, 100);//
round.setBounds(170, 20, 60, 30);//设置按钮圆的位置
rectangle.setBounds(350, 20, 80, 30);//设置按钮长方形的位置
buttonPanel.add(round);
buttonPanel.add(rectangle);
add(buttonPanel);//把面板添加到窗口里面
setVisible(true);//设置窗口为显示
setDefaultCloseOperation(EXIT_ON_CLOSE);// 单击关闭窗口时执行的操作(关闭)。
}
public void paint(final Graphics g){//画笔
super.paint(g);
g.setColor(Color.black);//将此g图形上下文的当前颜色设置为黑色
g.fillOval(roundX,roundY,roundW,roundH);//使用当前颜色填充外接指定矩形框的椭圆。
//roundX-要填充椭圆的左上角的 x 坐标,roundY-要填充椭圆的左上角的 y 坐标,roundW-要填充椭圆的宽度,roundH-要填充椭圆的高度
g.fillRect(rectangleX,rectangleY,rectangleW,rectangleH);//填充指定的矩形
//rectangleX-要填充矩形的左上角的 x 坐标,rectangleY-要填充矩形的左上角的 y 坐标,rectangleW-要填充矩形的宽度,rectangleH-要填充矩形的高度
//为圆按钮添加监听单击事件
round.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
roundX-=1;
roundY-=1;
roundW+=2;
roundH+=2;
g.fillOval(roundX,roundY,roundW,roundH);//重新设置椭圆的属性既单击圆按钮变大
repaint();
}
}
});
//为长方形按钮添加监听单击事件
rectangle.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
new Test().init();
/* rectangleX-=1;
rectangleY-=1;
rectangleW+=2;
rectangleH+=2;
g.fillRect(rectangleX,rectangleY,rectangleW,rectangleH);
repaint();*/
}
}
});
}
}
我在长方形按钮打开了打开了另外一个窗口..可以打开啊.
你那是不是没有为第二个窗口添加东西啊..所以只是定义了一个窗口.没有东西
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JFrame{
/**
* @param args
*/
public static void main(String[] args) {
new Test().init();
}
JPanel buttonPanel=new JPanel();
JButton round=new JButton("圆");
/
JButton rectangle=new JButton("长方形按钮");
int roundX=130,roundY=150,roundW=50,roundH=50;
int rectangleX=400,rectangleY=150,rectangleW=50,rectangleH=50;
public void init(){
setTitle("圆和长方形");
setLayout(null);
setSize(600,400);
setResizable(false);//设置窗口为隐藏
setLocationRelativeTo(null);
buttonPanel.setLayout(null);//设置布局方式
buttonPanel.setBounds(0, 300, 600, 100);//
round.setBounds(170, 20, 60, 30);//设置按钮圆的位置
rectangle.setBounds(350, 20, 80, 30);//设置按钮长方形的位置
buttonPanel.add(round);
buttonPanel.add(rectangle);
add(buttonPanel);//把面板添加到窗口里面
setVisible(true);//设置窗口为显示
setDefaultCloseOperation(EXIT_ON_CLOSE);// 单击关闭窗口时执行的操作(关闭)。
}
public void paint(final Graphics g){//画笔
super.paint(g);
g.setColor(Color.black);//将此g图形上下文的当前颜色设置为黑色
g.fillOval(roundX,roundY,roundW,roundH);//使用当前颜色填充外接指定矩形框的椭圆。
//roundX-要填充椭圆的左上角的 x 坐标,roundY-要填充椭圆的左上角的 y 坐标,roundW-要填充椭圆的宽度,roundH-要填充椭圆的高度
g.fillRect(rectangleX,rectangleY,rectangleW,rectangleH);//填充指定的矩形
//rectangleX-要填充矩形的左上角的 x 坐标,rectangleY-要填充矩形的左上角的 y 坐标,rectangleW-要填充矩形的宽度,rectangleH-要填充矩形的高度
//为圆按钮添加监听单击事件
round.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
roundX-=1;
roundY-=1;
roundW+=2;
roundH+=2;
g.fillOval(roundX,roundY,roundW,roundH);//重新设置椭圆的属性既单击圆按钮变大
repaint();
}
}
});
//为长方形按钮添加监听单击事件
rectangle.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
new Test().init();
/* rectangleX-=1;
rectangleY-=1;
rectangleW+=2;
rectangleH+=2;
g.fillRect(rectangleX,rectangleY,rectangleW,rectangleH);
repaint();*/
}
}
});
}
}
我在长方形按钮打开了打开了另外一个窗口..可以打开啊.
你那是不是没有为第二个窗口添加东西啊..所以只是定义了一个窗口.没有东西
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询