Java 求一个日本人的宽度和高度
我正在寻找一个Java 求一个日本人的宽度和高度,java,graphics,jpanel,paintcomponent,japplet,Java,Graphics,Jpanel,Paintcomponent,Japplet,我正在寻找一个JApplet的宽度和高度。我尝试了不同的方法,寻找了一个答案,但还没有找到 以下是代码的主要部分: import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JApplet; import javax.swing.Timer; public class Main extends JApplet impleme
JApplet
的宽度和高度。我尝试了不同的方法,寻找了一个答案,但还没有找到
以下是代码的主要部分:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.Timer;
public class Main extends JApplet implements ActionListener {
private static final long serialVersionUID = 1L;
Timer timer;
public int x, y, width = 40, height = 40;
public void init() {
Painter painter = new Painter();
JApplet component = new JApplet();
x = (component.getWidth())/2 - (width/2) - 20;
y = (component.getHeight())/2 - (height/2) - 40;
painter.setBackground(Color.white);
setContentPane(painter);
setSize(1000, 500);
}
public void start() {
if (timer == null) {
timer = new Timer(100, this);
timer.start();
} else {
timer.restart();
}
}
public void stop() {
if (timer != null) {
timer.stop();
timer = null;
}
}
public void actionPerformed(ActionEvent ae) {
repaint();
}
}
下面是绘制圆的代码:
import java.awt.Graphics;
import javax.swing.JPanel;
public class Painter extends JPanel {
private static final long serialVersionUID = 2L;
Main m = new Main();
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(m.x, m.y, m.width, m.height);
}
}
上面仍然在
JApplet
帧的右上角0,0
处生成圆,但它应该位于中心 JFrame有一个更好的实现
public class Main extends JFrame {
public static void main(String[] args) {
setSize(500, 500);
setVisible(true);
setLayout(new FlowLayout()); // THIS LINE IS IMPORTANT
// Put rest of code here :D
}
}
问题从这里开始
Main m = new Main();
这是一个新的小程序,一个从未在屏幕上显示的小程序&默认情况下大小为0 x 0像素
这里正确的方法是完全忽略父容器。所有相关的是正在进行定制喷漆的面板的尺寸。所以
g.drawOval(m.x, m.y, m.width, m.height);
应该是:
g.drawOval(0, 0, getWidth(), getHeight());
关于小程序:
setSize(1000, 500);
组件
超类中定义。小程序继承它们。不要重新定义它们,因为这只会引起混乱。如果默认属性提供了所需的信息,请使用它们。如果没有,则以不同的方式命名属性。鉴于他们似乎在画一个圆圈,我建议circleX
<代码>圆圈,圆圈宽度
和圆圈灯
public int x, y, width = 40, height = 40;
步骤1)不要使用
JApplet
。或者任何类型的Java小程序。为什么?为什么我不能使用JApplet?目前使用的最大浏览器Chrome不支持它。它将在Java9中从Java中完全删除。它是旧的、不安全的和没有支持的。不要用它。别学了,浏览器里已经没有Java了。完成了。你可以看看JavaWebStart“…现在网页和浏览器主要由html组成”是的。使用一些样式(CSS)使其美观,并使用JavaScript实现任何“动态”的功能。“.with Java incorporated?”没有。事实上,大多数浏览器制造商已经取消了对嵌入式Java小程序的所有支持。Sun/Oracle f**将安全性提高了一次太多,他们厌倦了尝试支持它(同时保证用户的安全)。这有什么帮助?不,随着JFrame
的大小调整,流布局将不断变化。你需要看一看a。1)请对代码和代码片段、结构化文档(如HTML/XML或输入/输出)使用代码格式。为此,请选择文本并单击邮件发布/编辑表单顶部的{}
按钮。2) 更广泛地说,这是一个非常糟糕的答案,提问者应该忽略。a) 他们处理的是一个小程序,而不是一个框架。b) 他们正在进行定制绘制,这应该在JPanel的paintComponent(Graphics)
方法中。框架装饰意味着面板总是比框架小,因此找到框架尺寸是不相关的。-负一