我在Java中尝试使用Graphics2D.但像往常一样,我被困住了.:P问题是:假设我有这个代码,
Graphics2D g=(Graphics2D)(this.getGraphics()); //Inside a JFrame
g.rotate(Math.PI/8);
g.drawLine(10, 20, 65, 80);
//I want this one and all following lines to be drawn without any rotation
g.drawLine(120, 220, 625, 180);
Run Code Online (Sandbox Code Playgroud)
可能吗???我知道必须有某种方式,但我无法弄清楚.请帮忙.
由于Java核心库没有这样的集合,数组是否是最佳选择,特别是如果不想依赖第三方库?
任何人都知道或了解为什么我的按钮在我调整applet大小后消失了?
这是我的代码:
import java.awt.event.*;
import javax.swing.*;
import acm.program.*;
public class button extends ConsoleProgram {
public void init(){
hiButton = new JButton("hi");
add(hiButton, SOUTH);
addActionListeners();
}
public void actionPerformed(ActionEvent e){
if(hiButton == e.getSource()){
println("hello") ;
}
}
private JButton hiButton;
}
假设我有以下内容,
public class Foo{
private String bar;
public String getBar(){
return bar;
}
public void setBar(String bar){
this.bar = bar;
}
}
Run Code Online (Sandbox Code Playgroud)
由于String类的不可变特性,这些方法是自动线程安全的,还是需要一些锁定机制?
所以,我正在尝试初始化一个DatagramSocket构造函数,我想要这个字段final,但我的编译器(即Eclipse)给我以下错误:
空白的最终字段datagramSocket可能尚未初始化
这是可以理解的.这是一段代码片段:
public class Foo
{
private final int DEFAULT_UDPLISTENPORT = 49400;
private final DatagramSocket datagramSocket;
public Foo()
{
synchronized(this)
{
try
{
datagramSocket = new DatagramSocket(DEFAULT_UDPLISTENPORT);
}
catch (SocketException e)
{
// Log error
logger.error("Trouble opening UDP port: ", e);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我知道有办法绕过这个,但它需要我创建一个临时变量.这是一段代码片段:
public class Foo
{
private final int DEFAULT_UDPLISTENPORT = 49400;
private final DatagramSocket datagramSocket;
public Foo()
{
synchronized(this)
{
DatagramSocket tempSocket = null;
try
{
tempSocket = new DatagramSocket(DEFAULT_UDPLISTENPORT); …Run Code Online (Sandbox Code Playgroud) 有没有比使用ListIterator?更快,更有效的方法?
ListIterator<Integer> itr = list.listIterator(list.size());
while(itr.hasPrevious()){
System.out.println(itr.previous());
}
Run Code Online (Sandbox Code Playgroud) 由于Python在GIL方面存在一些问题,因此Java更适合开发多处理应用程序.你能否以自己的方式证明java的有效处理的确切推理?
我有一个关于Java的快速问题.如果这个问题非常基础,我很抱歉,但我是Java初学者:D
我想在窗口中渲染一个2D图像,但我无法弄明白.我在这里查看了图形API:
http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Graphics.html
我能找到的唯一可行方法是drawImage().但是,这对我不起作用,但也许它与ImageObserver Observer参数有关?我刚刚在某处找到了一些教程,因为我发现了一些编译错误:这里是我的paint方法:
public void paint(Graphics g)
{
Image img1 = Toolkit.getDefaultToolkit().getImage("theImage.png");
g.drawImage(img1, 100, 100, null);
} // public void paint(Graphics g)
Run Code Online (Sandbox Code Playgroud)
以下是调用它的方法:
public static void main(String[] args)
{
MyGame game = new MyGame();
game.setVisible(true);
game.play();
} // public static void main(String[] args)
/** The play method is where the main game loop resides.
*/
public void play()
{
boolean playing = true;
//Graphics g = new Graphics();
while (playing)
{
paint();
}
} // public void play() …Run Code Online (Sandbox Code Playgroud) 我知道您可以修改LaF属性,但是如何在不执行此操作的情况下完成此操作?我只是问,因为setBackground似乎没有这样做.
请注意,我正在寻找更改以下属性:
TabbedPane.background(或TabbedPane.contentAreaColor?)TabbedPane.tabAreaBackground我试图在java(Eclipse Indigo)中做类似的事情:
input - 16 (integer);
Output - "0016" ;
input - 201 (integer);
Output - "0201" ;
intput - 1716 (integer);
Output - "1716" ;
Run Code Online (Sandbox Code Playgroud)
在VB.net中我可以使用:
dim num as integer
dim str as string
str = Format(num, "0000")
Run Code Online (Sandbox Code Playgroud)
我怎么能在java中做同样的事情?提前致谢...