gpt4 book ai didi

java - 程序运行,但不显示任何内容?

转载 作者:行者123 更新时间:2023-12-01 22:30:35 24 4
gpt4 key购买 nike

我刚刚回到Java编程,长话短说,我制作了一个Applet,但不知道它们只能在浏览器中运行,所以我尝试更改代码,这样我就可以将它放入可运行的.Jar中,但是当我运行我的代码它没有做任何事情。

public static void main(String args[])
{
setBackground(Color.black); //Sets the background to black.
Font myFont = new Font("Arial", Font.PLAIN, 14); //Makes "myFont" a font that is plain.
setFont(myFont); //Sets the font to "myFont"..
}

private static void setFont(Font myFont) {


}

private static void setBackground(Color black) {

}

public void paint(java.awt.Graphics g) {
g.setColor(Color.blue); //Sets anything in "paint" to be in blue.
int xArray[] = {20, 110, 200, 200, 110, 20, 20}; //This line, and the line below are the cords for the bowtie.
int yArray[] = {20, 45, 20, 100, 65, 100, 20};
g.drawPolygon(xArray, yArray, 7); //Draws the bowtie.
g.drawString("Bow ties are no longer cool.", 20, 150); //Writes the text.

}}

最佳答案

该代码仅执行您告诉它的操作:

  • main 方法当然会运行。
  • 然后它会调用 setFont、setBackground,这两个方法都不执行任何操作,因为您已将它们编写为不执行任何操作
  • 然后main方法和程序结束。
  • 如果 paint(...) 方法没有重写 Swing 组件的 Paint 方法,则该方法将不会产生任何效果,而您的组件则不然。
  • 最好重写 Swing 组件的 PaintComponent 方法,教程将告诉您所有相关内容。

我很惊讶你期望它能做更多的事情。如果您希望实际显示 GUI,则将大部分代码从静态领域移至类或实例领域,让您的代码扩展 JPanel,覆盖其 PaintComponent,并将 JPanel 放入 main 方法中的 JFrame 中。最重要的是,阅读教程,因为它们将向您展示实现此目的的最佳路径。您可以在此处找到 Swing 教程和其他 Swing 资源的链接:Swing Info

例如,

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

public class SwingExample extends JPanel {
private static final int PREF_W = 400;
private static final int PREF_H = 300;

public SwingExample() {
setBackground(Color.black); //Sets the background to black.
Font myFont = new Font("Arial", Font.PLAIN, 14); //Makes "myFont" a font that is plain.
setFont(myFont); //Sets the font to "myFont"..
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.blue); //Sets anything in "paint" to be in blue.
int xArray[] = {20, 110, 200, 200, 110, 20, 20}; //This line, and the line below are the cords for the bowtie.
int yArray[] = {20, 45, 20, 100, 65, 100, 20};
g.drawPolygon(xArray, yArray, 7); //Draws the bowtie.
g.drawString("Bow ties are no longer cool.", 20, 150); //Writes the text.
}

@Override
public Dimension getPreferredSize() {
if (isPreferredSizeSet()) {
return super.getPreferredSize();
}
return new Dimension(PREF_W, PREF_H);
}

private static void createAndShowGui() {
SwingExample mainPanel = new SwingExample();

JFrame frame = new JFrame("SwingExample");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}

关于java - 程序运行,但不显示任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27853042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com