我正在努力学习java,但我遇到了一些问题,找到答案对我来说并不简单。我想做的任务似乎很简单。
我想添加一个标签框架。MyFrame是一个JFrame类,具有一些基本的修改,如大小、颜色等。
主代码如下所示:
public class Main {
public static void main(String[] args)
{
// a GUI window to add components
MyFrame myFrame = new MyFrame();
ImageIcon image = new ImageIcon("Images/background.png");
//a GUI display area for a string of text,image or both
JLabel label = new JLabel("Why it is happening?",image,JLabel.CENTER);
myFrame.add(label);
//label.setText("Why it is happening?");// set text of label
//label.setIcon(image);
label.setHorizontalTextPosition(JLabel.CENTER);
}
}
我得到的结果就是我想要的:正确的结果
当我评论关于标签的最后一行时,它正在改变我的用户界面的外观。它只显示JFrame而没有我的标签。
非工作代码:
public class Main {
public static void main(String[] args)
{
// a GUI window to add components
MyFrame myFrame = new MyFrame();
ImageIcon image = new ImageIcon("Images/background.png");
//a GUI display area for a string of text,image or both
JLabel label = new JLabel("Why it is happening?",image,JLabel.CENTER);
myFrame.add(label);
//label.setText("Why it is happening?");// set text of label
//label.setIcon(image);
//Commented
//label.setHorizontalTextPosition(JLabel.CENTER);
}
}
这是图形结果:不工作标签
我错过了一些基本信息吗?我认为两者应该是一样的。
这是一个有趣的问题。乍一看,我同意@VGR。但是如果这一切都归因于绘画的顺序等。-那么我会期望调用“重新绘制()”甚至“无效()”来解决这个问题。看起来不像...所以也许这是一个摆动的错误。
import javax.swing.*;
public class Main
{
public static void main(String[] args)
{
// a GUI window to add components
JFrame myFrame = new JFrame();
ImageIcon image = new ImageIcon("Images/background.png");
myFrame.setSize(500,250);
myFrame.setVisible(true);
JLabel label = new JLabel("Why it is happening?", image, JLabel.CENTER);
myFrame.add(label);
//label.setHorizontalTextPosition(JLabel.CENTER);
label.repaint(); //Should have the same effect as the line above, but doesn't!
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
在此输入图像说明 我正在尝试用新文本更新并且我需要这个文本有下行线。
问题内容: 我似乎无法弄清楚为什么我的JFrame为空。我要去哪里错了? 导入javax.swing。*; 导入java.awt.FlowLayout; 公共类GUIExample扩展JFrame { } 问题答案: 您忘记在jFrame中添加contentPane了,就像这样 我注意到您正在使用继承来构建jFrame,因此在这种情况下,您需要实例化自己的类。我已经用最小的代码重构了您的代码以运行
我对编程相对较新,所以如果这个问题很愚蠢,我很抱歉。我正在创建一个Java程序,它在JPanel中包含一个JButton,而JPanel在JFrame中。另一个按钮在JPanel之外,但仍在JFrame中。我将布局设置为BoxLayout。我的问题是,我把面板做成黑色,除了第二个按钮之外,它占据了整个JFrame。如何使JPanel只占用第一个按钮周围的区域?
我有一个我将像这样填充它 在这种情况下,如果返回类似的内容,那么最终结果是一个空的?这是为什么?我以为会捕获所有转义字符。
尝试将我的java应用程序从Eclipse导出到可运行的jar文件中。(这是一个控制台应用程序) 这是Eclipse中项目目录的外观: 以下是项目的运行配置: 这就是jar创建选项的外观: 最后,这是我得到的错误: 我真的试过了所有的东西,但我很困惑为什么它不运行。主类选择正确,运行配置似乎正确,我尝试了runnable和regular,两者都不起作用。 我尝试过清理、重建,甚至重新制作这个项目,
所以我尝试在Java创建一个象棋游戏(自我学习)。 我使用JFrame创建一个框架,JPanel将其添加到框架中,JLabel定义象棋棋盘的瓷砖。 我想通过单击它来改变瓷砖的颜色,我使用的是这样的方法:这是鼠标单击的方法。 这里调用的函数是: 所以当我点击一个瓷砖,它为正确的瓷砖上色,但通过打开一个新的瓷砖。知道这是为什么吗?我如何只在那个框架中进行更改? 这是整个源代码: main.java m