gpt4 book ai didi

java - 在java程序中修改图形?

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:52 25 4
gpt4 key购买 nike

我编写了以下 java 程序,但我似乎无法让它执行我想要的操作。我想用java制作两个盒子。在这两个盒子中应该有一个包含人名的绿色盒子和另一个盒子以及一个情绪盒子,当心情快乐时它会变成红色,否则它是灰色的。我需要让我的 Facebook_Graphics.java 做这样的事情

enter image description here

我写了下面的类(class),但我能做什么。

import java.awt.*;


import jpb.*;

public class Facebook_Graphics{
private String name;
private String content;
DrawableFrame df;
private Graphics g;

public Facebook_Graphics(String nm){
content = "undefined";
name = nm;

// Create drawable frame
df = new DrawableFrame(name);
df.show();
df.setSize(200, 150);

// Obtain graphics context
g = df.getGraphicsContext();

// display name
g.drawString(name+"'s mood is undefined.", 20, 75);

// Repaint frame
df.repaint();
}

public void setContent(String newContent){
content = newContent;

if(content.equals("happy")){
g.setColor(Color.red);
g.fillRect(0, 0, 200, 150);
g.setColor(Color.black);

// display mood
g.drawString(name+"'s mood is:"+ "happy", 20, 75);
}
else{
g.setColor(Color.white);
g.fillRect(0, 0, 200, 150);
g.setColor(Color.black);
g.drawString(name+"'s mood is:"+ content, 20, 75);
}
// Repaint frame
df.repaint();
}

public String getContent(){
return content;
}
}


public class FacebookPerson_Graphics{
private String myName;
private String myMood;
private Facebook_Graphics myfacebook;

public FacebookPerson_Graphics(String name){
myName = name;
myfacebook = new Facebook_Graphics(myName);
}

public String getName(){
return myName;
}

public void setMood(String newMood){
myMood = newMood;
myfacebook.setContent(myMood);
}

public String getMood(){
return myMood;
}
}




import jpb.*;
@SuppressWarnings( "deprecation" )
public class testFacebook_Graphics{
public static void main (String[] args){
// Prompt user to enter the number of facebookpresons
SimpleIO.prompt("Enter the number of facebookpresons to be created: ");
String userInput = SimpleIO.readLine();
int numP = Integer.parseInt(userInput);

FacebookPerson_Graphics[] fbp = new FacebookPerson_Graphics[numP];

//Ask the user to enter the name for each person, and create the persons
for(int i=0; i< numP; i++){
SimpleIO.prompt("Enter the name for person "+ (i+1)+ ":");
String name = SimpleIO.readLine();
fbp[i] = new FacebookPerson_Graphics(name);
}
System.out.println("-------select a person and type the mood below--------");


//Ask the user to set the mood for a person, and update the mood, enter "####" to exit
while(true){
SimpleIO.prompt("Enter the name for a person (enter #### to exit):");
String name = SimpleIO.readLine();
if(name.equals("####"))
System.exit(0);
int personID = -1;
for(int i=0; i< numP; i++){
if(fbp[i].getName().equals(name)){
personID = i;
break;
}
}
if(personID!=-1){ // found the person
SimpleIO.prompt("Enter the mood for the person:");
String mood = SimpleIO.readLine();
fbp[personID].setMood(mood);
}
else
System.out.println("unrecognized name!");
} // end while

} // end main

}

最佳答案

将您的 Facebook_Graphics 类更改为如下所示:

public class Facebook_Graphics {
private String name;
private String content;
DrawableFrame df;
private Graphics g;

public Facebook_Graphics(String nm) {
content = "undefined";
name = nm;

// Create drawable frame
df = new DrawableFrame(name);
df.show();
df.setSize(200, 150);

// Obtain graphics context
g = df.getGraphicsContext();
drawLayout();
df.repaint();
}

public void setContent(String newContent) {
content = newContent;

clearGraphics();
drawLayout();

// Repaint frame
df.repaint();
}
private void clearGraphics() {
g.setColor(Color.WHITE);
g.fillRect(0, 0, 200, 150);
}
private void drawLayout() {
g.setColor(Color.BLACK);
g.drawString("Name", 20, 40);
g.drawString("Mood", 20, 90);

g.setColor(Color.GREEN);
g.fillRect(80, 20, 100, 30);

g.setColor(getMoodColor());
g.fillRect(80, 70, 100, 30);

g.setColor(Color.BLACK);
g.drawString(name, 90, 40);
g.drawString(content, 90, 90);
}

private Color getMoodColor() {
return "happy".equals(content) ? Color.RED : Color.GRAY;
}

public String getContent() {
return content;
}
}

关于java - 在java程序中修改图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734421/

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