我不是要问如何在JTable中显示一个Component,因为在线有几个教程和示例.但是,我想知道最好的解决方法是什么.
举例来说,我碰到最教程有创建单独的类(主类,一个扩展的例子JTable,在延伸TableModel,一个扩展TableCellRenderer,等等).但是,我发现你不仅可以在一个类中完成它,而且可以通过简单地使用以下方法来实现:
主要
public class Main
{
public static void main(String[] args)
{
javax.swing.JFrame jf = new javax.swing.JFrame("A table with components");
jf.setLayout(new java.awt.BorderLayout());
jf.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
jf.add(new TableWithCompsPanel(), java.awt.BorderLayout.CENTER);
jf.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
TableWithComps
public class TableWithCompsPanel extends java.awt.Container
{
private Class<?> tableColumnClassArray[];
private javax.swing.JTable jTableWithComps;
private Object tableContentsArray[][];
public TableWithCompsPanel()
{
tableContentsArray = new Object[][]
{
{"This is plain text", new javax.swing.JButton("This is a button") },
{new javax.swing.JLabel("This is an improperly rendered label!"), new javax.swing.JCheckBox("This …Run Code Online (Sandbox Code Playgroud) 我正在制作一个WebGL程序,需要GL函数glGenVertexArrays和glBindVertexArrays.有人知道WebGL中是否有相同的这些?这是我到目前为止所拥有的:
canvas = document.getElementById("WEB_GL_CANVAS");//Specify the viewing window
gl = WebGLUtils.setupWebGL(canvas);
if (!gl)
alert("WebGL isn't available");
gl.viewport(0, 0, canvas.width, canvas.height);
{
var color = getRandomColor();
gl.clearColor((color[0] / 2) + 0.5, (color[1] / 2) + 0.5, (color[2] / 2) + 0.5, 1);
}
gl.enable(gl.DEPTH_TEST);
// Create a vertex array object
GLuint vao;
gl.genVertexArrays( 1, &vao );//Won't work
gl.bindVertexArray( vao );//Need a WebGL version
Run Code Online (Sandbox Code Playgroud) 我正在尝试用Java编写一个可以读取,编译和运行brainfuck源文件的程序(.bf).我已经让它与维基百科的Hello World示例一起工作得很好,但它打破了ROT13的例子(声称]它在实际匹配时达到了无与伦比的效果).
实际的解析器代码都写在一个.JAVA文件中,但它的核心(实际的brainfuck解析器和运行代码)在下面的方法中,doNow(char).以下是变量的含义:cells是要运行的字符数组(char[]); pointer是指向array(short)中的地址的Java变通方法; PC是程序计数器(int),并且loopStack是对应于[s(基本上是a short[])的地址堆栈.这些不是问题,因为它们在Hello World测试中工作得很好.采取输入的方法自动过滤掉多余的字符,我确认它可以从调试检查中完美地工作.
为什么这个解析器不运行ROT 13代码?
我的解析器,用Java编写
/** The array of data */
private byte[] cells = new byte[Short.MAX_VALUE];
/** The pointer that is manipulated by the user or program */
private short pointer = 0;
/** The program counter, to run compiled programs */
private int PC = 0;
/** …Run Code Online (Sandbox Code Playgroud) 因为可可设计模式,实例方法的名称count中NSMutableArray是不明确的; 它可以要么返回保存的变量count,或者它的每个,它被称为时间可以指望数组中的项,并返回(可可决定了仅返回一个变量的值的方法foo是foo,不getFoo).Objective C NSMutableArray实际上是在每次count调用方法时计算项目,还是返回预先计算的变量的值?如果这是Java,我会查看源代码,但我找不到源代码NSMutableArray.我查看了API,它说的只是:
返回当前数组中的对象数.
由于没有上下文,我无法判断这是否意味着它内部进行了任何计算.
我想加载YouTube视频,然后立即静音,播放,暂停和取消静音.在这样做时,我希望向用户呈现一个没有大播放按钮的视频,并且底部有控件.为此,我有以下代码:
<script type="text/javascript">
function onYouTubePlayerReady(playerid)
{
mutePlayPauseUnmute(playerid);
}
function onYouTubePlayerAPIReady(playerid)
{
mutePlayPauseUnmute(playerid);
}
function onYouTubeIframeAPIReady(playerid)
{
mutePlayPauseUnmute(playerid)
}
function onPlayerReady(playerid)
{
mutePlayPauseUnmute(playerid)
}
function mutePlayPauseUnmute(playerid)
{
var player = document.getElementById(playerid);
player.mute();
player.playVideo();
player.pauseVideo();
player.unMute();
}
</script>
<iframe id="quotedVideo1" type="text/html" width="246" height="160" src="https://www.youtube.com/embed/NWHfY_lvKIQ?modestbranding=1&rel=0&showinfo=0&autohide=1&iv_load_policy=3&theme=light&enablejsapi=1&playerapiid=quotedVideo1" frameborder="0"> <!-- Magic Comment --> </iframe>
Run Code Online (Sandbox Code Playgroud)
然而,经检查,没有onYouTubePlayerReady,onYouTubePlayerAPIReady,onYouTubeIframeAPIReady,onPlayerReady,也不mutePlayPauseUnmute是以往任何时候都调用.我做错了什么?根据https://developers.google.com/youtube/js_api_reference#onYouTubePlayerReady,它看起来应该有效,但事实并非如此.
我想为我的应用程序实现DnD只接受某些扩展名的文件(例如wrl).如果文件将被接受,我想将光标更改为拖动光标,并在拖放错误扩展名的文件时恢复到正常光标.
我一直在http://docs.oracle.com/javase/tutorial/uiswing/dnd/toplevel.html上关注以下教程/示例
我所做的更改是在canImport函数中
public boolean canImport(TransferHandler.TransferSupport support)
{
if (!support.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
{
return false;
}
Transferable t = support.getTransferable();
try
{
java.util.List<File> l = (java.util.List<File>)t.getTransferData(DataFlavor.javaFileListFlavor);
if (l.size() != 1)
{
return false;
}
File f = l.get(0);
String extension = f.getName().substring(f.getName().lastIndexOf("."));
return extension.equalsIgnoreCase(".wrl");
}
catch (UnsupportedFlavorException e)
{
return false;
}
catch (IOException e)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在不同的文件中拖动时,这种行为正确.但是,当我删除文件时,我得到以下异常
Exception in thread "AWT-EventQueue-0" java.awt.dnd.InvalidDnDOperationException: No drop current
at sun.awt.dnd.SunDropTargetContextPeer.getTransferData(SunDropTargetContextPeer.java:227)
at sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:56)
at java.awt.dnd.DropTargetContext$TransferableProxy.getTransferData(DropTargetContext.java:359)
at appl.TopLevelTransferHandlerDemo$1.canImport(TopLevelTransferHandlerDemo.java:207)
at javax.swing.TransferHandler$DropHandler.drop(TransferHandler.java:1454)
at …Run Code Online (Sandbox Code Playgroud) 我只是想评估一个输入是否是一个数字,并认为isNaN这是最好的方法.但是,这会导致不可靠的结果.例如,使用以下方法:
function isNumerical(value) {
var isNum = !isNaN(value);
return isNum ? "<mark>numerical</mark>" : "not numerical";
}
Run Code Online (Sandbox Code Playgroud)
在这些价值观上:
isNumerical(123)); // => numerical
isNumerical("123")); // => numerical
isNumerical(null)); // => numerical
isNumerical(false)); // => numerical
isNumerical(true)); // => numerical
isNumerical()); // => not numerical
Run Code Online (Sandbox Code Playgroud)
在这个小提琴中显示:http://jsfiddle.net/4nm7r/1
为什么不isNaN总是对我有用?
我有一个[URL]代表一组特殊父目录的目录。我得到了另一个[URL]代表分散在系统各处的文件。我想知道这些文件是否位于我的任何特殊目录或其任何子目录中。有没有一种简单/有意的方法可以做到这一点,而无需手动解析/遍历绝对 URL 的路径?
我最近访问了StuffAndNonsense.co.uk网站,这是数字设计师 Andy Clarke 的个人网站。我对此感到惊讶,使用我什至不知道存在的网页技术。
我查看了样式并发现了这一点:
:root {
--font-family: tondo_rg,sans-serif;
--font-family-light: tondo_lt,sans-serif;
--font-family-bold: tondo_bd,sans-serif;
--font-weight: 400;
--font-size-xxx-display: 8vmin;
--font-size-xx-display: 4.11rem;
--font-size-x-display: 3.653rem;
--font-size-display: 3.247rem;
--font-size-xxxx-large: 2.887rem;
--font-size-xxx-large: 2.027rem;
--font-size-xx-large: 1.802rem;
--font-size-x-large: 1.602rem;
--font-size-large: 1.424rem;
--font-size-medium: 1.266rem;
--font-size: 1.125rem;
--font-size-small: 1rem;
--font-size-x-small: .889rem;
--font-size-xx-small: .79rem;
--lineheight-text: 1.5;
--lineheight-heading: 1.3;
--color-background: #fff;
--color-background-selection: #f0f2f3;
--color-border: #cacfd5;
--color-text-default: #0b1016;
--color-text-alt: #95a0ac;
--color-base: #f4f5f6;
--color-accent: #ba0d37;
--color-logo-enamel: #ba0d37;
--color-logo-highlight: #fdfdfd;
--color-logo-metal: #cacfd5;
--color-logo-lettering: #fff;
--color-logo-type: #0b1016;
--color-text-link: #2c4159;
--color-text-link-active: var(--color-text-link);
--color-text-link-focus: var(--color-text-link);
--color-text-link-hover: var(--color-accent); …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个Java程序,用户可以在其中从计算机中选择任何文件.class或.jar文件.然后我的程序会弹出一个JInternalFrame与JEditorPane它作为控制台,捕捉来自用户的程序的任何控制台输出.当用户的程序关闭(调用System.exit(int status);)时,我的程序不能随之关闭.我的程序可能还有一个功能,如立即停止用户程序的按钮和IDE的其他功能.我的程序不需要编译Java代码,只需运行.class和.jar文件.
我已经制作了这个程序的一个小测试版本,其中我从一个包中获得了两个特定文件,并让用户单击两个按钮中的一个,每个按钮代表两个程序中的一个.按一下按钮会调用以下方法:
private void run(Class runnable)
{
java.lang.reflect.Method[] m = runnable.getMethods();
boolean hasMain = false;
for (int i = 0; i < m.length; i++)
{
if (m[i].getName().equals("main") && m[i].getParameterTypes()[0].isArray() && m[i].getParameterTypes()[0].getName().contains("java.lang.String"))
try
{
Object invoke = m[i].invoke(null, (Object)globalArgs);
hasMain = true;
hub.setExtendedState(Hub.ICONIFIED);
numPrograms++;
}
catch (Throwable t)
{
java.util.logging.Logger.getLogger(Hub.class.getName()).log(java.util.logging.Level.SEVERE, null, t);
javax.swing.JOptionPane.showMessageDialog(null, "Could not run " + runnable.getName(), "Error in invocation", javax.swing.JOptionPane.ERROR_MESSAGE);
} …Run Code Online (Sandbox Code Playgroud) java ×4
javascript ×2
performance ×2
swing ×2
brainfuck ×1
cocoa ×1
css ×1
html5 ×1
jcomponent ×1
jframe ×1
jtable ×1
nan ×1
nsurl ×1
objective-c ×1
opengl-es ×1
parsing ×1
swift ×1
webgl ×1
youtube-api ×1