0 0

swing改变背景色问题5

                Color co = g.getColor();
g.clearRect(20*posx,20*posy,20,20);
g.setColor(Color.red);
g.fill3DRect(20*posx,20*posy,20,20,true);
g.setColor(co);

我想在pox poy处的20*20矩形画成红色,但是没有达到想要的效果,,怎么回事呢

问题补充:import java.awt.*;
import javax.swing.*;

class RoadPath extends JPanel{
int direction;
int map[][];
int posx;
int posy;
public RoadPath(){
posx = 17;
posy = 25;
direction = 8;
JFrame f = new JFrame();
f.setBounds(100,100,700,500);
f.add(this);
f.setVisible(true);
//f.
map = new int[30][20];
//draw Road
//竖
for(int y=4;y<16;y++){
int ran=((int)(Math.random()*1000))%3;
if(ran==0){
map[3-1][y]=1;
map[3+23-1][y]=1;
map[3+1][y]=1;
map[1+3+23][y]=1;
}
if(ran==1){
map[3+1][y]=1;
map[1+3+23][y]=1;
}
if(ran==2){
map[3+1][y]=1;
map[1+3+23][y]=1;
map[3+2][y]=1;
map[2+3+23][y]=1;
}
map[3][y]=1;
map[3+23][y]=1;
}
for(int x=3;x<27;x++){
int ran=((int)(Math.random()*1000))%3;
if(ran==0){
map[x][3-1]=1;
map[x][3+13-1]=1;

map[x][3+1]=1;
map[x][3+13+1]=1;
}
if(ran==1){
map[x][3+1]=1;
map[x][3+13+1]=1;
}
if(ran==2){
map[x][3+1]=1;
map[x][3+13+1]=1;
map[x][3+2]=1;
map[x][3+13+2]=1;

map[x][3-1]=1;
map[x][3+13-1]=1;
}
map[x][3]=1;
map[x][3+13]=1;
}
}

public void paintComponent(Graphics g){
for(int i=0;i<30;i++)
for(int j=0;j<20;j++){
if(map[i][j]==0){
//Color co = g.getColor();
//g.setColor(Color.red);

g.draw3DRect(20*i,20*j,20,20,true);
//g.setColor(co);

}
else if(map[i][j]==3){

}
else {
g.fill3DRect(20*i,20*j,20,20,true);

}

}
Color co = g.getColor();
g.clearRect(20*posx,20*posy,20,20);
g.setColor(Color.red);
g.fill3DRect(20*posx,20*posy,20,20,true);
g.setColor(co);

}
public static void main(String args[]){
new RoadPath();
}
}

问题补充:
chen_yongkai 写道
看这个代码片段好像没问题,发个完整的看看

代码贴上去了亲
2012年3月21日 21:24

2个答案 按时间排序 按投票排序

0 0

采纳的答案

看这个代码片段好像没问题,发个完整的看看

2012年3月21日 21:45
0 0

引用
posx = 17;
posy = 25;
引用
g.fill3DRect(20*posx,20*posy,20,20,true);

已经超出你的坐标空间了,把posx,posy 改小或者加大frame的长宽,你就能看见红色方格了

2012年3月22日 09:12

相关推荐

    双击鼠标随机改变背景颜色.doc

    标题中的“双击鼠标随机改变背景颜色.doc”指的是一个Java程序,它会在用户双击鼠标时,随机地改变窗口的背景颜色。这个程序利用了Java的事件处理机制和颜色类来实现这一功能。 描述中提到的“一个双击鼠标随机改变...

    swing开发的源代码

    你可以自定义JPanel的行为,比如添加背景色或绘制自定义图形。 4. **JButton, JTextField, JLabel, JTextArea**:这些是Swing的基本组件,分别代表按钮、单行文本输入框、标签和多行文本区域。它们构成了用户界面的...

    Java编程实现swing圆形按钮实例代码

    如果按钮是armed状态,我们使用高亮的颜色来画圆形按钮的背景,否则我们使用按钮的背景颜色来画圆形按钮的背景。然后,我们使用super.paintComponent(g)方法来画标签和焦点矩形。 在paintBorder方法中,我们使用...

    10 改变对话框的背景色.rar_背景色

    Java Swing提供了`JDialog`类,可以通过`setContentPane()`和`JPanel`的`setBackground()`方法来改变背景色: ```java JDialog dialog = new JDialog(); JPanel panel = new JPanel(); panel.setBackground...

    自制菜单,可改背景色等

    总的来说,"自制菜单,可改背景色等"这个主题涵盖了前端开发、用户界面设计、事件处理、颜色理论以及可能的多语言支持等多个IT领域的知识点。开发者需要具备编程能力,理解UI设计原则,并能灵活运用各种工具和技术来...

    java swing jTabbedPane 自定义UI(宽、高、放大、文本、颜色、间距) 简单易懂带注释可直接运行

    java swing jTabbedPane 自定义的U,包括(宽、高、点击放大、文本字体、背景颜色、选项卡间距等) 简单易懂带注释可直接运行

    swing外观 美化包

    3. **组件级美化**:针对特定组件进行美化,例如,可以修改按钮的背景色、边框、字体,或者设置自定义的图标。通过`setForeground()`, `setBackground()`, `setFont()`, `setIcon()`等方法可以实现。 4. **布局管理...

    swing自定义JTabbedPane组件外观

    例如,我们可以改变选项卡背景色: ```java @Override protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex) { // 自定义的绘图代码 g.setColor(Color.LIGHT_GRAY); // 设置背景色 //...

    java swing界面设计

    - JComponent类是所有Swing组件的基类,提供了一些基本的方法和属性,如设置背景色、边框等。 - Swing组件可以通过继承并重写方法来自定义外观和行为。 6. **Swing的国际化支持** - Swing提供了强大的本地化支持...

    JAVA Swing日期选择控件datepicker

    3. **定制外观和行为**:你可以根据需求调整DatePicker的外观,例如改变字体、颜色,或者添加监听器来处理用户的选择事件。 ```java datePicker.getEditor().getTextField().setFont(new Font("Arial", Font.PLAIN,...

    txt文本阅读器 实现字体颜色改变和文本背景变换

    "txt文本阅读器 实现字体颜色改变和文本背景变换"这个项目是一个专注于增强用户阅读体验的简易应用,它允许用户自定义文字的颜色和背景颜色,尽管目前还无法调整字体大小,但开发者正在进行相关改进。 在实现这个...

    Qrcode swing的二维码程序

    本项目“Qrcode swing的二维码程序”旨在利用Java Swing库来创建一个用户友好的界面,允许用户自定义二维码的各种属性,包括大小、背景色、前景色、容错级别以及添加logo等。以下将详细阐述这个项目的知识点。 1. *...

    java swing简单画板

    可以创建一个矩形或椭圆形,其颜色设置为背景色,然后使用`fillRect()`或`fillOval()`方法擦除指定区域。为了模拟橡皮擦的效果,可能还需要根据用户的鼠标移动来动态改变擦除区域的大小和位置。 **5. 事件监听** ...

    java更换窗口背景颜色

    ### Java 更换窗口背景颜色 ...通过这种方式,我们不仅能够改变窗口的背景颜色,还可以为用户提供更多样化的选择。这种方法非常适用于创建简单的用户界面应用程序,其中需要根据用户的输入进行动态调整。

    Core SWING advanced programming(CHM,英文)

    它也可以添加背景颜色或图像,或者使用自定义布局管理器。 3. **JMenuBar 和 JMenu**: 这些组件用于创建菜单栏和下拉菜单,提供用户交互的重要方式。 4. **JOptionPane**: 用于显示简单的对话框,如消息提示、输入...

    Swing样式大全(全56种经典)

    2. 颜色和字体:每个组件都有自己的颜色和字体属性,例如背景色、前景色、边框色等。可以通过设置`setForeground()`、`setBackground()`等方法来更改。 3. 边框:Swing提供了多种内置边框类型,如etched、line、...

    Java Swing 源码

    JComponent提供了许多便利的方法,例如添加监听器、设置前景色和背景色等。Swing还提供了许多预定义的组件,如JButton、JLabel、JTextArea、JTable等。 2. **布局管理器**:Swing提供了多种布局管理器,如...

    改变视图窗口的背景色

    在编程领域,特别是涉及到用户界面(UI)设计时,改变视图窗口的背景色是一项基本且重要的任务。这有助于提高应用程序的视觉效果,使用户界面更加个性化和吸引人。在本教程中,我们将深入探讨如何通过重载相关类来...

    令Swing风格更加美化的插件

    例如,你可以创建一个带有渐变背景色的按钮,或者一个有圆角边框的文本框。这通常需要继承相应的Swing组件,并重绘其图形部分。 3. **图标与图像**:使用高质量的图标和背景图片可以显著提升应用的视觉效果。这些...

    Swing实现编辑器(支持语法高亮)

    1. **选择合适的文本模型**:JTextPane使用 StyledDocument 模型,它可以对文本的不同部分应用不同的样式,如字体、颜色和背景色,这对于语法高亮至关重要。 2. **定义语法样式**:根据支持的编程语言(如Java、...

Global site tag (gtag.js) - Google Analytics