我编写这个程序是为了找到一种方法,可以String
在BufferedImage
任何大小(在本例中,a 的大小与其inBufferedImage
相同JPanel
)和位置上绘制居中的 a 。当我调整 的大小时JFrame
,文本会在重新定位时闪烁BufferedImage
,我不知道为什么。
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
@SuppressWarnings("serial")
class test extends JPanel
{
double scale = 0;
String draw = "1";
test()
{
setPreferredSize(new Dimension(600, 600));
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
paintText(g2, 0, 0);
}
public void paintText(Graphics2D g, int x, int y)
{
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
BufferedImage bi = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D big = (Graphics2D) bi.getGraphics(); …
Run Code Online (Sandbox Code Playgroud) 在这样的if语句中:
if(strcmp(str1,str2))
Run Code Online (Sandbox Code Playgroud)
strcmp()可以返回负值,如果是,则if语句将其视为TRUE或FALSE.
我一直在尝试使用这个c ++程序按字母顺序排序5个名称:
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
int main()
{
char names[5][100];
int x,y,z;
char exchange[100];
cout << "Enter five names...\n";
for(x=1;x<=5;x++)
{
cout << x << ". ";
cin >> names[x-1];
}
getch();
for(x=0;x<=5-2;x++)
{
for(y=0;y<=5-2;y++)
{
for(z=0;z<=99;z++)
{
if(int(names[y][z])>int(names[y+1][z]))
{
strcpy(exchange,names[y]);
strcpy(names[y],names[y+1]);
strcpy(names[y+1],exchange);
break;
}
}
}
}
for(x=0;x<=5-1;x++)
cout << names[x];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我分别进入厄尔,唐,克里斯,比尔和安迪,我得到这个:
AndyEarlDonChrisBill
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我的程序有什么问题吗?