这里有一个新手,但是这是一个解释我的问题的小测试代码.打印的值为-1.我对如何返回图像的像素宽度没有丝毫的线索,我错过了一些非常明显的东西吗?整个ImageObserver的东西没有任何意义!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class imagetest2 extends JPanel {
Image i =Toolkit.getDefaultToolkit().getImage(/*image*/);
public int test(){
int x = i.getWidth(null);
return x;
}
}
class imagetest {
public static void main(String args[]){
imagetest2 tesst = new imagetest2();
System.out.print(tesst.test());
}
}
Run Code Online (Sandbox Code Playgroud) 以下是:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html
'd''\ u0054'将参数格式化为十进制整数.应用定位算法.
如果给出'0'标志且值为负,则在符号后将出现零填充.
我感到很沮丧,试图学习这种格式化的东西,但那个教程只是如此凌乱和凌乱.
String.format("%03d", int);
Run Code Online (Sandbox Code Playgroud)
我试图了解这整个应该去哪里,但我不知道,我一定要错过一些非常明显的东西......
编辑:
我想要达到的目的:正10:010负10:-10我想要达到的负面结果:-010
好吧也许我只是累了因为这个但我怎么能做到这一点?
int x = Integer.MAX_VALUE+10;
Run Code Online (Sandbox Code Playgroud)
// 也许
int x = Integer.MIN_VALUE-20;
Run Code Online (Sandbox Code Playgroud)
我只想要if语句来捕获x是否在"范围内"有点像这样:
if(x >= Intefer.MAX_VALUE || x <= Integer.MIN_VALUE){ //throw exception}
Run Code Online (Sandbox Code Playgroud)
但问题是,如果值如上所述,如MAX_VALUE + 10,则该值最终既不高于MAX VALUE也不低于MIN_VALUE并且不满足if条件...
编辑:澄清我的意思:我不想实际存储任何大于最大/最小值的值.想象一下:
一个字段,你写10 + 10,它说"好,那是20"接下来,有人可能会写1000000*100000,它也会回答答案,但是有人可能会写出超过最大/最小值的东西比如,10000000*1000000*1000000或类似的东西,然后程序应该都像是"举起来,这太高了!这里是你的"0"而不是"
我无法理解c中的void*指针.我已经google了一下,但还没有真正理解如何解决这个具体问题:
typedef struct _Test{
char* c;
}Test;
void method(void* test){
Test t;
t = *(Test*)test;
t.c = "omg";
printf(t.c); //WORKS
}
int main(){
Test t;
method(&t);
printf(t.c); //NOT WORKING, prints nothing/random letters
return 0;}
Run Code Online (Sandbox Code Playgroud)
为什么?或者更确切地说,解决此问题的最佳方法是什么?