我有这个方法paint()接收Graphics2D参数.发生的奇怪事情是,除非存在System.out.println(我在下面的块中注释掉),否则画布不会绘制任何内容.
public class Map{
public void paint(Graphics2D g){
//fill background to black
g.setColor(Color.black);
g.fillRect(0, 0, TILE_SIZE*WIDTH, TILE_SIZE*HEIGHT);
//draw the tiles and buildings
for(int i=0;i<WIDTH;i++){
for(int j=0;j<HEIGHT;j++){
if(map[j][i] == CLEAR){
//System.out.println("");
g.setColor(Color.gray);
g.fillRect(i*TILE_SIZE, j*TILE_SIZE, TILE_SIZE, TILE_SIZE);
g.setColor(Color.red);
g.drawRect(i*TILE_SIZE, j*TILE_SIZE, TILE_SIZE, TILE_SIZE);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我使用BufferStrategy在Canvas上绘制并将其添加到Frame.这个方法在Map类中,它将从BufferStrategy的getDrawGraphics()方法传递一个Graphics2D(我希望很多人都熟悉这些东西来理解我在做什么).
public class MapTest extends Canvas{
private Map map;
public MapTest(){
Frame frame = new Frame("MAP");
frame.add(this);
frame.setVisible(true);
createBufferStrategy(2);
strategy = getBufferStrategy();
//draw the map
Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
//g.translate(100, 100);
map.paint(g);
g.dispose();
strategy.show(); …Run Code Online (Sandbox Code Playgroud) 好的,所以我是新手,我一直在寻找两周的时间来尝试将一个SQL结果集打印到由JavaFX Scene Builder制作的TableView上.我可以使用System.out.println打印我的结果集并且数据是正确的,但是当我尝试将它放入List时,我的tableview显示一列为0,另一列为空.我正在尝试打印List(println),但是我得到了对象指针(?)而不是数据,所以我无法看到我是否正确地从ResultSet传递到List.
任何帮助将不胜感激......我想了解这个概念,而不仅仅是得到答案.
这是我的控制器代码:
public class TesterUIController implements Initializable {
@FXML
private TableView<dataClass> Table;
@FXML
private Button TestButton;
@FXML
private TableColumn<dataClass, Integer> colKey;
@FXML
private TableColumn<dataClass, String> colSalesNo;
public static void main (String[] args) {
System.out.println("Main has run");
}
/**
*
* @param fxmlFileLocation
* @param resources
*/
@Override
public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
TestButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Button Pressed");
colKey.setCellValueFactory(new PropertyValueFactory<dataClass, Integer>("Key"));
colSalesNo.setCellValueFactory(new PropertyValueFactory<dataClass, String>("SalesNo"));
Table.getItems().setAll(gobbledyGook());
}
} );
}
/* …Run Code Online (Sandbox Code Playgroud) public class Test {
/**
* @param args
*/
// 1st way
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Test....!!!!!");
}
// 2nd way
static{
System.out.println("Test....!!!!!");
System.exit(1);
}
// 3rd way
private static int i = m1();
public static int m1(){
System.out.println("Test...!!!!");
System.exit(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
除此之外,我们可以以任何其他方式打印消息.
我在Android Studio中创建了一个Hello,World项目来测试使用System.out.println().我相信日志消息应该在控制台中打印,但事实并非如此.我使用Android Studio AI-130.737825和JRE:1.7.0_25.测试代码如下:
package com.example.consoletest;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("please print me in the console");
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在编程Arduino,我正在尝试Serial.print()十六进制格式的字节"我的方式"(继续阅读更多信息).
也就是说,通过使用以下代码
byte byte1 = 0xA2;
byte byte2 = 0x05;
byte byte3 = 0x00;
Serial.println(byte1, HEX);
Serial.println(byte2, HEX);
Serial.println(byte3, HEX);
Run Code Online (Sandbox Code Playgroud)
我在串行监视器中得到以下输出:
A2
5
0
Run Code Online (Sandbox Code Playgroud)
但是我想输出以下内容:
A2
05
00
Run Code Online (Sandbox Code Playgroud)
在的话,我想打印的"全"的十六进制值包括0S(05而不是0和00代替0).
我该怎么做?
我有一个user具有一些属性的对象,我可以使用点表示法访问.
例如,user.fullName输出一个String之类的Firstname Lastname.
如何在println使用字符串插值的语句中访问这些属性?
我尝试过以下方法:
println(s"user's full name is $user.fullName")
Run Code Online (Sandbox Code Playgroud)
但是,它似乎不适用于点表示法,只解析整个$user对象,将剩余fullName部分解释为字符串而不是属性.这输出错误:
>>用户的全名是User(...).fullName
以下是我的追求:
>>用户的全名是名字姓氏
帮助赞赏!
我遇到了问题,如果我尝试打印var我有时会得到一个"可选("var")"如果我尝试登录或打印到标签,但是当我没有得到它.
看这里
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NSUserDefaults.standardUserDefaults().setObject("notWorking", forKey: "testvar")
NSUserDefaults.standardUserDefaults().synchronize()
println(NSUserDefaults.standardUserDefaults().stringForKey("testvar"))
var test = "working"
println(test)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释这个"可选"出现的时间及其用途吗?我怎么能删除它?
我想知道如何控制控制台打印格式.我的问题是我有2个线程,其中一个不断地向控制台输出信息,另一个不断要求用户写信息,但在写入时如果另一个线程打印出来的东西,它会切断用户正在写的短语并分割它.你怎么控制它?
我的线程代码1:
//Definition of variables
while (exit == false) {
scanner = new Scanner(System.in);
message = scanner.nextLine();
}
//Code to use user input
Run Code Online (Sandbox Code Playgroud)
我的帖子代码2:
//Definition of variables
while (receive.getExecutingState()) {
srvMsg = receive.Receive();
System.out.println(srvMsg);
}
Run Code Online (Sandbox Code Playgroud)
控制台输出:
No more data to show.
No more data to show.
hNo more data to show.
eNo more data to show.
llo
Run Code Online (Sandbox Code Playgroud)
我希望它在用户写入数据时保持打印消息,但不要分割它正在编写的内容.
提前致谢!
编辑:正如@Thomas所说,我想以更清晰的方式,是保持用户在控制台底部写的文本,其余的都在更新.
我正在使用 Intellij Idea 的 Kotlin REPL。
当我输入这个时:
println("line 1 ")
println("line 2 ")
print("same ")
print("line")
Run Code Online (Sandbox Code Playgroud)
我希望这个输出:
"line 1 "
"line 2 "
"same line"
Run Code Online (Sandbox Code Playgroud)
但相反,我得到:
"line 1 line 2 same line"
Run Code Online (Sandbox Code Playgroud)
为什么?
在这段代码中,有一个!后println:
fn main() {
println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)
在我见过的大多数语言中,打印操作是一个函数。为什么它是 Rust 中的宏?