問題タブ [paint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3041 参照

java - JComponentは表示されません、誰もが理由を知っていますか?

これが私のJFrameコードです:

そしてここにのコードがありますMyCustomWidget

問題は、JComponentがウィンドウに表示されていないことであり、その理由がわかりません。表示されるようにするためだけに追加しましたwidget.setVisible(true)。何も機能しません。私が間違っていることを見つけられますか?

皆さんが提案した変更の後、コードは次のようになります。

パッケージjavaapplication2;

と:

0 投票する
3 に答える
1522 参照

java - スレッド内からインスタンス化されたコンポーネントが Java の JFrame に再描画されない

私はこのような単一のクラスを持っています

}

このクラスを JFrame メイン クラスでインスタンス化し、次のようにスレッドを開始します。

この initBlockSpawner() 関数を JFrame コンストラクター内から呼び出します。Block Class は実際には少し大きいですが、一言で言えば、runnable を実装し、コンストラクターの最後で run() メソッドを呼び出します。run() メソッドは、ブロックを特定の速度で落下させるだけです。JFrameコンストラクターで新しいブロックを手動でインスタンス化しようとしましたが、それらは機能し、再描画して落ちます。しかし、他のスレッドからブロックをインスタンス化したいときはいつでも、それらは落ちているように見えます (つまり、そのプロパティが各ループを更新します) が、JFrame に描画されません。

追加情報として、私は NetBeans を使用しています。アプリケーションのエントリ ポイントは JFrame クラスにあるため、メイン メソッドは次のようになります。

Java スレッド、awt イベント、swing コンポーネントの経験はあまりありません。しかし、私がここで読んだことは、私の問題は、swing コンポーネントを制御できるスレッドが 1 つしかないこと、または何かだと思います...私の問題を解決する方法はありますか?

前もって感謝します。

編集:追加情報、スレッドからインスタンス化されたキューブで toString メソッドをチェックするたびに、この [,0,0,0x0] が返されますが、同じ JFrame クラス内でそれらをインスタンス化すると、この結果 [,0, 0,328x552] で、フレームに表示されます。この 328x552 の値は、getPreferredSize() によって返されるコンポーネントのディメンションと同じです...次のようにインスタンス化することで、それらをそのディメンションに強制しようとしました。

しかし、うまくいきませんでした。この [,0,0,328x552] の値が何を意味するか知っている人はいますか?

皆さん、ありがとうございます。あと少しです!

編集 2: コンポーネントのサイズが x:0 y:0 であることに気付きました。これはなぜですか? BlockSpawner の run() メソッドを次のように変更します。

最初の実行では、すべてがうまくいきます!ブロックのペアでさえ JFrame にペイントして正しく落ちますが、Thread.sleep() の後、残りのブロックはインスタンス化されますが、getSize() メソッドは x:0 y:0; を返します。これはまだ One Dispatcher Thread の問題に何らかの形で関連していますか? それとも今は違うのですか?

0 投票する
4 に答える
1704 参照

flash - ホワイトボードアプリの滑らかなペイントカーブを実現するにはどうすればよいですか?

私はActionScript3でシンプルなホワイトボードアプリを作成しています。ActionScriptのほとんどのホワイトボードまたはペイントアプリは、インターバル、タイマー、mouseMoveイベント、またはenterFrameイベントを使用して、マウスの位置を追跡し、追跡されたポイント間の線またはブラシをペイントする傾向があります。 。

私が達成しようとしているのは、Photoshopのようなプログラムがブラシツールでペイントしているときにレンダリングできる、滑らかなペイントラインです。Photoshopでは、マウスをキャンバス上でどれだけ速く動かしても、ペイントされた線は常に滑らかな曲線のエッジになります。私のアプリでは、前述の方法のいずれかを使用して、ブラシをステージにレンダリングする関数呼び出しの間に常にレイテンシーがあります。したがって、これらの手法のいずれかを使用すると、マウスを非常にすばやく円形に動かすときに、鋭い角のある線が生じる可能性があります。

これは私にとっては驚きではありません。Photoshopのブラシツールのように、より滑らかな線を実現する方法がわかりません。念のために言っておきますが、私のアプリのブラシは主に形状に基づいており、描画APIを使用して連続線を描画しないか使用できません。つまり、graphics.curveTo()はオプションではありません。また、ブラシによって生成されたスプライトまたはシェイプをBitmapDataインスタンスにレンダリングしています。

0 投票する
5 に答える
2239 参照

asp.net-mvc - ブラウザのキャンバスから画像を保存する

現在、ASP .NET MVCでWebサイトを開発していますが、データベースに保存できるキャンバスに画像を描画できるようにするための機能が必要です。これを行うための最良の方法は何ですか?できれば非常に軽量なソリューションです。私はフラッシュが最もアクセスしやすいプラットフォームであり、いくつかの良い無料のソリューションがあるかもしれないと思っていました。

ありがとう

0 投票する
1 に答える
1015 参照

java - JCombobox のポップアップ リストが完全に描画されない

に がありJInternalFrame、内部フレームJDesktopにも があります。JComboBox問題を以下に示します。

問題

ポップアップリストを完全に表示できるように、JComboBox外側にペイントするにはどうすればよいですか? JInternalFrameガラス板の使用は最適な解決策ですか、それとも悪い習慣でしょうか?


解決策: 解決策を見つけました。getSize()のメソッドをオーバーライドするだけですJComboBox:

0 投票する
2 に答える
1138 参照

java - ゲームの背景画像のペイントを最適化するJava

課題の一環として、「ゼルダの伝説過去へのリンク」の再現に取り組んでいます。

そして、次の問題があります。ゲームの世界はBufferedImageであり、プレーヤーの現在の場所に必要な部分をsubImage()します。ゲームは動作しますが、CPUの80/110パーセントを使用します。プロファイルは、犯人が画像の描画であることを明らかにしました。

だから私は、プレイヤー、敵などのJPanelとは別のJPanelに背景を置くことにしました。それらを互いに重ねてレンダリングし(JLayeredPane)、背景パネルを再描画する頻度を大幅に減らします。

しかし、これを行うにはどうすればよいですか?1つのパネルを1秒間にx回、他のパネルをy回描画するようにswingに指示するにはどうすればよいですか?最適化のより良い方法があれば、私に知らせてください。

これが私が現時点で持っているものです:

ありがとうございました。

0 投票する
1 に答える
451 参照

.net - ツリービューノード+/-ボタンをツリービューの外側にペイントするにはどうすればよいですか?

クラスと同様に、で使用される+/-ボタンをの任意のインスタンスに完全に個別にButtonRendererペイントできるようにしたいと思います。それを行う方法はないようで、ボタンの描画は正しく見えません。ツリービューノードの描画コードはどこから入手できますか?TreeViewNodesTreeViewControlPaint

0 投票する
1 に答える
128 参照

c# - ポイントと長方形を再利用するか、新しいものを作成する必要がありますか?

ペイント イベントのように頻繁に呼び出されるメソッドでは、(位置と境界を指定するために) Point オブジェクトと Rectangle オブジェクトを再利用する方が効率的ですか、それとも新しいオブジェクトを作成する必要があります。

0 投票する
3 に答える
1008 参照

delphi - ネストされたコントロールの上にペイントすることは避けてください

ツールバースタイルのコントロールを作成していて、ThemeServicesユニットを使用してツールバーに必要な背景をペイントしています。そのようです:

次に、子コントロールをツールバーと出来上がり(インスタントツールバー)にドロップします。ネストされた(子)コントロールも再描画されないことに時々気付くのを除いて。したがって、私のコントロールはその背景をペイントし、子コントロールはマウスをそれらの上に移動するまで消えます。

一部の編集コントロールにはクライアント領域(境界線なし)が表示され、一部は完全に削除されています。

これは主に、別のアプリケーションのウィンドウをツールバーの上に配置して移動したときに発生します。

これは非常に簡単に解決できる必要があると私は考え続けています。おそらく、ペイントメッセージが子コントロールに到達するのを妨げているか、オーバーライドを見逃しているのかもしれませんが、それを理解できませんでした。

0 投票する
2 に答える
2029 参照

c# - PropertyGrid PaintValueの問題:標準の長方形を削除(および外側にペイント)する方法は?

簡単な解決策は見つかりませんでしたが、これは簡単な質問かもしれません。

私は、BoolにPaintValueを追加することを唯一の目的として、カスタムUITypeEditorを実装しました。説明のために、PaintValueがチェックされたまたはチェックされていないラジオボタンをペイントすると仮定しましょう。

質問1:

ここで問題があります。すべてのペイントコードが完了した後、PaintValueは自動的に20x13pxの長方形を挿入するようです。当然、黒い長方形の内側のラジオボタンは醜いです。このレクタグルをペイントしないように簡単に指示またはオーバーライドできますか?

質問2:

この点で、propertygridのネイティブな外観の上にペイントすることは可能ですか?つまり、2つのグリッドセルを垂直に分離する黒い線(の一部)を隠すために何かをペイントできますか?これを行う目的は、アスペクト比に対する制約された幅/高さのように、2つの値がリンクされていることを示すことです。

どんな答えでも大歓迎です。