- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Java swing 库的新手,目前在设置 JFrame 的背景时遇到了一些问题。
我已阅读 jframe-setbackground-not-working-why和其中的链接,但它似乎不适合这里。
这是我的代码:
public class Board extends JPanel{
public enum pointType{
EMPTY,
CARRIER,
BALL;
}
private class Point{
int x;
int y;
pointType type;
public void paint (Graphics2D g2){
// color changes depends on pointType
g2.setColor(Color.WHITE);
g2.fillOval(x,y,25,25);
}
}
Point[][] myBoard;
public Board(){
//constructor, myBoard = 2d List of points
}
//.. other methods and class variables
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D) g;
for(int k =HEIGHT; k>=0; k--){
for(int i=WIDTH; i>=0; i--){
// call paint method for each points on board
myBoard[i][k].print(g2);
}
}
}
public static void main(String[] args){
Board board = new Board();
JFrame myFrame = new Jframe("Game");
myFrame.add(board);
board.setBackground(Color.YELLOW);
myFrame.setVisible(true);
mtFrane.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
我的代码根据点类型成功打印了所有点,但板颜色设置不正确(仍然是默认背景)。
下面是问题:
1)如何正确设置背景?
2) 我觉得我的代码没有正确地一起使用 JPanels/JFrames/Graphics,如果是这样的话,关于我如何改进我的代码结构有什么建议吗?
最佳答案
使用paintComponent()
代替paint()
public class Board extends JPanel{
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
...
}
}
有关更多信息,请查看以下帖子:
关于Java setBackground() 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23479355/
我不认为这是重复的,因为其他问题与 JButtons 和 JPanels 有关。 我想知道为什么 java 中的以下内容不能像人们想象的那样工作: import javax.swing.JApplet
我正在用 Java 制作游戏,目前设置的背景不起作用,但设置的前景有效。这是我的主类代码: import java.awt.*; import javax.swing.*; public class
我是 Java swing 库的新手,目前在设置 JFrame 的背景时遇到了一些问题。 我已阅读 jframe-setbackground-not-working-why和其中的链接,但它似乎不适合
import javax.swing.JApplet; import java.awt.*; public class Snowman extends JApplet { //------------
希望对你来说是一个简单的... 我一直在尝试设置 QtListWidgetItem 的背景颜色,但运气不佳——这可能是因为我没有正确使用 QListWidgetItem...在我的测试代码中,我可以设
我想知道为什么 setBackground() 方法实际上没有使背景变黑。我感觉这与实现 JApplet 的类有关,而不是 Applet,但我无法弄清楚具体细节。这真的很困扰我。如有任何帮助,我们将不
当您创建JFrame实例时,您可以从此实例使用setBackground方法。但是,无论您尝试在那里放置什么颜色,您都会收到灰色背景颜色。 发生这种情况(据我所知),因为默认的 JPanel 实例是在
我一直在到处寻找解决我的问题的方法,但没有找到任何有效的方法:要求:在 jButton“颜色!”的红色和绿色背景颜色之间切换 状态:当我第一次单击该按钮时,它会变为红色,并且在下次单击时不会变为绿色。
我有一个非常简单的程序,要求用户单击其背景颜色与较大面板(又名显示面板)的背景颜色相匹配的四个面板之一,该面板随机将其背景颜色设置为四个面板之一。如果面板错误点击Joptionpane就出来了;显示面
我有一个图像按钮: 这是从我的主要 Activity 开始的单独 Activity 的一部分: Intent intent = new Intent(this, BookRead.class); s
我正在尝试为我的 swing UI 的某些区域着色,但感觉受限于使用 .setBackground(Color.//color here 有什么方法可以在其中使用更具体和独特的颜色(甚至没有棕色)的十
我正在编写一个带有测验元素的程序,当用户得到错误的答案时,会给出反馈。问题 JFrame 由具有实际问题的 JLabel 和 4 个具有不同选项(名为 rad1、rad2、rad3、rad4)的 JR
我有一个使我成为图像按钮的类(class)。这个图像按钮包含一个 ImageView 、两个 TextView 和一个按钮。 我在 ImageView 中放置了一些宽度,如果我将一个图像放入 xml
我在一本书中看到过这个例子,工作正常,但出现的唯一问题是背景在第一次调用 Paint 时没有变黑,当 clearCounter 变为 == 5 时,然后屏幕被清除并再次绘画开始时,背景变为黑色。 pu
我已经花了 6 个小时试图解决这个问题。我终于可以根据需要更改颜色,但我只想保留组合框箭头的默认颜色。 这是代码... 注意:编辑后的代码编译时没有图片显示的背景... import org.apac
我尝试设置 jbutton 的背景颜色,但不起作用?看图片。为什么不起作用?如何修复? 我想要红色背景:-) save_button.setForeground(Color.red);
我是 Android 新手,遇到以下问题: 我想将 TextView 的背景设置为 #333。我用过: TextView title = new TextView(this); ti
JPanel.setBackground方法不执行任何操作(尽管 opaque 属性为 true )如果 super.paintComponent父方法未被调用。 我在这里阅读了很多关于此问题的类似问
我有一个名为 MainUI 的类,它扩展了 JFrame,它具有以下代码: //Constructor public MainUI(){ // components/panels are alread
我最近了解到我可以为 JTable 创建自定义 DefaultTableCellRenderer 类。 但是,我的代码只为整行着色,而不是我想要根据条件着色的特定列/单元格。 如何在我创建的 Defa
我是一名优秀的程序员,十分优秀!